<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Форум 'WIN API' на RSDN</title>
    <link>http://rsdn.org/Forum/winapi/</link>
    <description></description>
    <category>winapi</category>
    <language>ru-ru</language>
    <copyright>Copyright ©, RSDN, 2001-2007</copyright>
    <webMaster>forum@rsdn.org</webMaster>
    <generator>RSDN RSS Generator 1.3</generator>
    <image>
      <url>http://rsdn.org/rsdn.gif</url>
      <title>RSDN</title>
      <link>http://rsdn.org</link>
    </image>
    <lastBuildDate>Tue, 07 Apr 2026 10:01:32 GMT</lastBuildDate>
    <ttl>5</ttl>
	<item>
		<title>FILE_FLAG_BACKUP_SEMANTICS</title>
		<link>http://rsdn.org/Forum/winapi/8992858.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/winapi/8992858</guid>
		<comments>http://rsdn.org/Forum/winapi/8992858</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8992858</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8992858</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8992858</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Пытаюсь под админом с включенной привилегией SE_BACKUP_NAME копировать заблокированные файлы через &lt;br /&gt;
&lt;br /&gt;
1) CreateFile(AFileName, GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE or FILE_SHARE_DELETE, nil, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0)&lt;br /&gt;
2) BackupRead(Handle, Buffer, BufferSize, Read, False, False, Context)&lt;br /&gt;
&lt;br /&gt;
В целом работает, но иногда все же CreateFile может дать ошибку ERROR_SHARING_VIOLATION или ERROR_ACCESS_DENIED. Это не универсальный способ копирования или я что-то делаю не так?&lt;/div&gt;
				
		</description>
		
		<category>winapi</category>
		<pubDate>Thu, 18 Sep 2025 01:03:57 GMT</pubDate>
		
			<author>Aniskin &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>9</slash:comments>
		
	</item>

	<item>
		<title>Как сделать небольшое окно с тонкой полоской заголовка?</title>
		<link>http://rsdn.org/Forum/winapi/8959181.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/winapi/8959181</guid>
		<comments>http://rsdn.org/Forum/winapi/8959181</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8959181</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8959181</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8959181</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Подскажите люди добрые, как с помощью WinAPI создать окошко с тонкой такой полоской заголовка, одной кнопочкой "закрыть", без иконки и системного меню. И чтобы:&lt;br /&gt;
 &amp;mdash; окно не имело бы собственной кнопки на панели задач&lt;br /&gt;
 &amp;mdash; окно могло располагаться где угодно на экране&lt;br /&gt;
 &amp;mdash; окно бы сворачивалось и разворачивалось вместе с главным окном приложения.&lt;br /&gt;
&lt;br /&gt;
Мне нужно сделать что-то вроде вспомогательного окна для toolbox в редакторе, или редактора свойств в Delphi. Будет главное окно приложения, и из него можно открыть это вспомогательное.&lt;br /&gt;
&lt;br /&gt;
Это какие стили окон в CreateWindow() надо использовать или настройки в WNDCLASSEX ?&lt;br /&gt;
&lt;br /&gt;
Всем заранее спасибо.&lt;/div&gt;
				
		</description>
		
		<category>winapi</category>
		<pubDate>Wed, 02 Jul 2025 18:32:13 GMT</pubDate>
		
			<author>jamesq &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>2</slash:comments>
		
	</item>

	<item>
		<title>Мелькающая тень в углу при создании диалогового окна на Wind</title>
		<link>http://rsdn.org/Forum/winapi/8946801.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/winapi/8946801</guid>
		<comments>http://rsdn.org/Forum/winapi/8946801</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8946801</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8946801</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8946801</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Просто создаю диалоговое окно из ресурсов (у него в ресурсах прописаны координаты 700,700):&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;INT_PTR CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{

    DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, DialogProc, 0);

    return 0;
}&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Всё хорошо, но примерно в 1 из 10 запусков в левом верхнем углу экрана (возможно даже немного за границами экрана) на доли секунды прорисовывается тень от моего диалогового окна. Причем это актуально только для winapi-шных диалогов.&lt;br /&gt;
Чё это блин такое? На предыдущих версиях Windows такого не было. Приложения для записи экрана это не успевают зафиксировать, я заснял на смартфон:&lt;br /&gt;
&lt;br /&gt;
&lt;a class="m" href="https://i4.imageban.ru/out/2025/06/07/6d7fd24dd798c0d75b57b6f2a7515a45.png" target="_blank"&gt;&lt;img border='0' src='https://i4.imageban.ru/thumbs/2025.06.07/6d7fd24dd798c0d75b57b6f2a7515a45.png' /&gt;&lt;/a&gt;&lt;/div&gt;
				
		</description>
		
		<category>winapi</category>
		<pubDate>Sat, 07 Jun 2025 14:14:28 GMT</pubDate>
		
			<author>Zenden &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>2</slash:comments>
		
	</item>

	<item>
		<title>UB в сетевом API Windows</title>
		<link>http://rsdn.org/Forum/winapi/8917827.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/winapi/8917827</guid>
		<comments>http://rsdn.org/Forum/winapi/8917827</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8917827</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8917827</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8917827</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Создаю UDP сокет под WSA как обычно:&lt;pre class='c'&gt;&lt;code&gt;handle = ::socket(AF_INET, SOCK_DGRAM, 0);&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Связываю сокет с адресатом через ::connect() (соединение естественно реально не устанавливается) &lt;br /&gt;
&lt;br /&gt;
Задаю таймаут на прием:&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;&lt;span class='kw'&gt;const int&lt;/span&gt; timeout = 500;
::setsockopt(handle, SOL_SOCKET, SO_RCVTIMEO, &lt;span class='kw'&gt;reinterpret_cast&lt;/span&gt;&amp;lt;&lt;span class='kw'&gt;const char&lt;/span&gt;*&amp;gt;(&amp;amp;timeout), &lt;span class='kw'&gt;sizeof&lt;/span&gt;(timeout)));&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Принимаю в цикле данные с помощью WSARecv() в блокирующем режиме (без OVERLAPPED).&lt;br /&gt;
&lt;br /&gt;
В случае, если пакеты приходят, всё нормально. Если пакетов нет, то ожидаемо возвращается SOCKET_ERROR и WSAGetLastError() возвращает WSAETIMEDOUT. Так работает почти везде.&lt;br /&gt;
Но на одном очень быстром сервере (128 ядер), иногда, вместо WSAETIMEDOUT возвращается WSA_IO_PENDING. Т.е. на блокирующем вызове (только по истечении таймаута) функция WSARecv возвращает, что операция не завершена и активна (потенциально). Тут я уже напрягся, т.к. OVERLAPPED создается внутри на стеке и потенциально драйвер может туда записать.&lt;br /&gt;
После продолжительных тестов на этом сервере опасения подтвердились: код падал в случайных местах незадолго после возврата из WSARecv.&lt;br /&gt;
&lt;br /&gt;
Вопрос к знатокам, как такое поведение вообще возможно? Это баг реализации ? Если да, то на каком уровне проблема может быть?&lt;br /&gt;
&lt;br /&gt;
P.S. Всё это было нужно только для того, что бы использовать таймаут на приеме пакетов по UPD и обошел я это реализацией своей блокирующей версией, которая явно использует OVERLAPPED и вызывает у него CancelIOEx() и дожидается c помощью WSAGetOverlappedResult() реального завершения операции. Вроде пока пронесло, но осадочек отрицательный остался. &lt;img border='0' width='15' height='15' src='//rsdn.org/Forum/images/frown.gif' /&gt;&lt;/div&gt;
				
		</description>
		
		<category>winapi</category>
		<pubDate>Wed, 02 Apr 2025 20:41:30 GMT</pubDate>
		
			<author>Videoman &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>11</slash:comments>
		
	</item>

	<item>
		<title>Непонятки с преобразованием DLU в точки и обратно</title>
		<link>http://rsdn.org/Forum/winapi/8911173.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/winapi/8911173</guid>
		<comments>http://rsdn.org/Forum/winapi/8911173</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8911173</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8911173</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8911173</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Впервые за тридцать лет программирования под винды озадачился ручным преобразованием диалоговых единиц размера (DLU) в точки растра и обратно, и сразу же нарвался на глюк. &lt;img border='0' width='15' height='15' src='//rsdn.org/Forum/images/smile.gif' /&gt;&lt;br /&gt;
&lt;br /&gt;
Документация MS &lt;a class="microsoft m" href="https://learn.microsoft.com/en-us/windows/win32/menurc/common-control-parameters" target="_blank"&gt;утверждает&lt;/a&gt;, что размеры элементов в описателях ресурсов задаются в DLU, которые равны 1/4 и 1/8 базовой единицы, соответственно, по горизонтали и вертикали. Масштаб экрана 100%, GetDialogBaseUnits возвращает 8 и 16, так что точек в DLU должно быть две по горизонтали и четыре по вертикали.&lt;br /&gt;
&lt;br /&gt;
В описании кнопки в шаблоне диалога указан размер 60 x 14 DLUs. Следовательно, на экране она должна занимать 120 x 28 точек. Но фактически занимает 90 x 23 (это возвращает и GetWindowRect, то же самое получается при снятии копии экрана и измерении в редакторе).&lt;br /&gt;
&lt;br /&gt;
Ладно, создаю структуру RECT, где right=left+60, и bottom=top+14. Передаю ее MapDialogRect, та возвращает TRUE. Вычитая left из right и top из bottom, получаю опять же 90 и 23.&lt;br /&gt;
&lt;br /&gt;
В &lt;a class="microsoft m" href="https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-mapdialogrect" target="_blank"&gt;описании MapDialogRect&lt;/a&gt; брешут, что координаты вычисляются так:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class='q'&gt;&lt;p&gt;left   = MulDiv(left,   baseunitX, 4);&lt;/p&gt;&lt;/blockquote&gt;
&lt;br /&gt;
По моим результатам видно, что это не так &amp;mdash; по факту коэффициент равен не 2, а 1.5.&lt;br /&gt;
&lt;br /&gt;
Где засада?&lt;br /&gt;
&lt;br /&gt;
Проверял на масштабе 125% &amp;mdash; GetDialogBaseUnits возвращает, как положено, 10 и 20, размер кнопки получается 105 x 28.&lt;/div&gt;
				
		</description>
		
		<category>winapi</category>
		<pubDate>Fri, 14 Mar 2025 18:29:30 GMT</pubDate>
		
			<author>Евгений Музыченко &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>0</slash:comments>
		
	</item>

	<item>
		<title>Программы для тестирования размеров элементов диалога</title>
		<link>http://rsdn.org/Forum/winapi/8874883.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/winapi/8874883</guid>
		<comments>http://rsdn.org/Forum/winapi/8874883</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8874883</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8874883</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8874883</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;В винде, как известно, есть проблема масштабирования диалогов: когда система растягивает диалог для отображения в масштабе больше 100%, размеры элементов приходится округлять, из-за чего они нередко отображаются неправильно (чаще всего пропадают последние буквы static text).&lt;br /&gt;
&lt;br /&gt;
Подбирать размеры/расстояния, изменяя их в редакторе, собирая приложение, и запуская его в сеансе с масштабированием, долго и муторно, а включать масштабирование в рабочем сеансе &amp;mdash; стремно.&lt;br /&gt;
&lt;br /&gt;
Может, есть какой-нибудь софт, помогающий двигать элементы и менять их размер в активном/отображенном диалоге, с последующим пересчетом позиций/размеров в DLU?&lt;/div&gt;
				
		</description>
		
		<category>winapi</category>
		<pubDate>Sun, 29 Dec 2024 10:33:14 GMT</pubDate>
		
			<author>Евгений Музыченко &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>46</slash:comments>
		
	</item>

	<item>
		<title>Понять, как работает RegNotifyChangeKeyValue</title>
		<link>http://rsdn.org/Forum/winapi/8869803.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/winapi/8869803</guid>
		<comments>http://rsdn.org/Forum/winapi/8869803</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8869803</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8869803</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8869803</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;В последней оффлайновой MSDN от 2008-го о длительности подписки и периодичности уведомлений сказано только это:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class='q'&gt;&lt;p&gt;This function detects a single change. After the caller receives a notification event, it should call the function again to receive the next notification.&lt;/p&gt;&lt;/blockquote&gt;
&lt;br /&gt;
В &lt;a class="microsoft m" href="https://learn.microsoft.com/en-us/windows/win32/api/winreg/nf-winreg-regnotifychangekeyvalue" target="_blank"&gt;онлайн-документации MS&lt;/a&gt; аж выделено следующее добавление:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class='q'&gt;&lt;p&gt;Note  On Windows NT, Windows 2000, and Windows XP calling RegNotifyChangeKeyValue for a particular key handle causes change notifications to continue to occur for as long as the key handle is valid. This causes a second call to RegNotifyChangeKeyValue to return immediately, if any changes have occurred in the interim period between the first and second calls. If the API is being used asynchronously, the passed event handle will be signaled immediately if any interim changes have occurred.&lt;/p&gt;&lt;/blockquote&gt;
&lt;br /&gt;
Как это все понимать? MSDN 2008 выпускалась уже после Vista. Если в работе функции произошли такие радикальные изменения, то странно, почему это не было отражено.&lt;br /&gt;
&lt;br /&gt;
Кто пользовался функцией в разных системах &amp;mdash; что меняется между NT/2k/XP и последующими версиями?&lt;/div&gt;
				
		</description>
		
		<category>winapi</category>
		<pubDate>Wed, 18 Dec 2024 19:50:52 GMT</pubDate>
		
			<author>Евгений Музыченко &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>7</slash:comments>
		
	</item>

	<item>
		<title>узнать тип сборки debug or release</title>
		<link>http://rsdn.org/Forum/winapi/8855228.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/winapi/8855228</guid>
		<comments>http://rsdn.org/Forum/winapi/8855228</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8855228</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8855228</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8855228</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;несколько приложений собираються VS 2020&lt;br /&gt;
&lt;br /&gt;
подскажите пожалуйста есть ли хороший способ определить являеться ли скомпилированные dll or exe &amp;mdash; debug or release версией (доступа к файлам проектов нет)&lt;/div&gt;
				
		</description>
		
		<category>winapi</category>
		<pubDate>Wed, 20 Nov 2024 14:31:23 GMT</pubDate>
		
			<author>sergey2b &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>3</slash:comments>
		
	</item>

	<item>
		<title>Запись и чтение в файл , разные указатели</title>
		<link>http://rsdn.org/Forum/winapi/8834613.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/winapi/8834613</guid>
		<comments>http://rsdn.org/Forum/winapi/8834613</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8834613</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8834613</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8834613</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Пишу программу, что-то вида базы данных. Если по простому, то она должна читать/писать по определенному смещению (допустим, первая запись, десятая), и &amp;mdash; в хидер. Проблема в том, что это не атомарная операция, т.е. может быть так, что я пишу по смещению 0x200 (запись), а потом перехожу к хидеру (скажем, 0x800000 ), и в это время случается сбой. Первый WriteFile успешно завершится, а второй &amp;mdash; нет. Как быть?&lt;br /&gt;
&lt;br /&gt;
1. Пробовал маппинг, не вышло, там проблемы с секциями, выравниванием, в общем проще забить.&lt;br /&gt;
2. Транзакции &amp;mdash; мс не рекомендует их в ОС выше восьмерки, как понимаю уберут в ядро или вообще.&lt;br /&gt;
3. Писать во временный файл и потом replacefile &amp;mdash; база огромная, да и накладно ради 1 операции копировать туда сюда много данных.&lt;br /&gt;
&lt;br /&gt;
Посоветуйте что-нибудь.&lt;/div&gt;
				
		</description>
		
		<category>winapi</category>
		<pubDate>Fri, 18 Oct 2024 21:36:18 GMT</pubDate>
		
			<author>morgot &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>2</slash:comments>
		
	</item>

	<item>
		<title>Service Framework Library - SFL 2.0</title>
		<link>http://rsdn.org/Forum/winapi/8814691.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/winapi/8814691</guid>
		<comments>http://rsdn.org/Forum/winapi/8814691</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8814691</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8814691</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8814691</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;SFL2.0, если она еще кого-то интересует, теперь выложена на GitHub, а именно, здесь: &lt;a class="github m" href="https://github.com/ivartanov/sfl2" target="_blank"&gt;https://github.com/ivartanov/sfl2&lt;/a&gt;&lt;/div&gt;
				
		</description>
		
		<category>winapi</category>
		<pubDate>Thu, 12 Sep 2024 15:40:15 GMT</pubDate>
		
			<author>Игорь Вартанов &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>3</slash:comments>
		
	</item>

	<item>
		<title>Где в десятках api-ms-win-core-winrt-string-l1-1-0.dll?</title>
		<link>http://rsdn.org/Forum/winapi/8750643.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/winapi/8750643</guid>
		<comments>http://rsdn.org/Forum/winapi/8750643</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8750643</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8750643</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8750643</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Пытаюсь запинать софтину, заточенную под десяточные API, под более младшие версии. Оно хочет несколько разных api-ms-*.dll, которые я в таких случаях добываю из каталогов downlevel. А эта хочет, в частности, api-ms-win-core-winrt-string-l1-1-0.dll, которой я в десятках не нахожу. И все бы ничего (некоторые DLL транслируются через реестр), так я ее и там не нахожу. &lt;img border='0' width='15' height='15' src='//rsdn.org/Forum/images/smile.gif' /&gt; А софтина, тем не менее, работает.&lt;br /&gt;
&lt;br /&gt;
Каким образом система обрабатывает импорты из подобных DLL?&lt;/div&gt;
				
		</description>
		
		<category>winapi</category>
		<pubDate>Thu, 23 May 2024 12:07:22 GMT</pubDate>
		
			<author>Евгений Музыченко &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>4</slash:comments>
		
	</item>

	<item>
		<title>Что за шляпа с GetFileAttributes?</title>
		<link>http://rsdn.org/Forum/winapi/8744973.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/winapi/8744973</guid>
		<comments>http://rsdn.org/Forum/winapi/8744973</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8744973</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8744973</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8744973</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Привет!&lt;br /&gt;
&lt;br /&gt;
Есть каталог, я в него хожу туда-сюда, хоть в фаре, хоть в проводнике.&lt;br /&gt;
&lt;br /&gt;
Но&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;&lt;span class='kw'&gt;template&lt;/span&gt;&amp;lt;&amp;gt; &lt;span class='kw'&gt;inline bool&lt;/span&gt; isPathDirectory&amp;lt;std::string&amp;gt;( &lt;span class='kw'&gt;const&lt;/span&gt; std::string &amp;amp;path )
{
    DWORD attrs = ::GetFileAttributesA(path.c_str());
    &lt;span class='kw'&gt;if&lt;/span&gt; (attrs==INVALID_FILE_ATTRIBUTES)
    {
        &lt;span class='kw'&gt;return false&lt;/span&gt;;
    }

    &lt;span class='kw'&gt;if&lt;/span&gt; (attrs &amp;amp; FILE_ATTRIBUTE_DIRECTORY)
    {
        &lt;span class='kw'&gt;return true&lt;/span&gt;;
    }

    &lt;span class='kw'&gt;return false&lt;/span&gt;;
}&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
с какого-то перепугу возвращает фолс.&lt;br /&gt;
&lt;br /&gt;
В отладчике посмотрел, GetFileAttributesA возвращает 0x2020:&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;&lt;span class='kw'&gt;#define&lt;/span&gt; FILE_ATTRIBUTE_ARCHIVE              0x00000020  
&lt;span class='kw'&gt;#define&lt;/span&gt; FILE_ATTRIBUTE_NOT_CONTENT_INDEXED  0x00002000&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
а для каталогов вроде должно стоять это:&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;&lt;span class='kw'&gt;#define&lt;/span&gt; FILE_ATTRIBUTE_DIRECTORY            0x00000010&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
В фаре смотрю атрибуты &amp;mdash; установлен только "неиндексируемый". Атрибут "архивный" &amp;mdash; не установлен.&lt;br /&gt;
&lt;br /&gt;
Смотрю свойства в проводнике &amp;mdash; а он мне говорит, что это папка с файлами, и что у неё стоит атрибут "только для чтения"&lt;br /&gt;
&lt;br /&gt;
Я где-то протупил, похоже, но где?&lt;/div&gt;
				
		</description>
		
		<category>winapi</category>
		<pubDate>Fri, 10 May 2024 16:22:19 GMT</pubDate>
		
			<author>пффф &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>21</slash:comments>
		
	</item>

	<item>
		<title>HKEY_CLASSES_ROOT - ошибка 5 - ERROR_ACCESS_DENIED</title>
		<link>http://rsdn.org/Forum/winapi/8743195.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/winapi/8743195</guid>
		<comments>http://rsdn.org/Forum/winapi/8743195</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8743195</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8743195</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8743195</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Привет!&lt;br /&gt;
&lt;br /&gt;
По идее, пользователю же можно туда писать-читать?&lt;br /&gt;
&lt;br /&gt;
Создаю ключ в реестре так:&lt;br /&gt;
&lt;table style="margin-top:5px;margin-bottom:5px" cellpadding="0" cellspacing="0"&gt; 	&lt;tbody onclick="toggleExpand(this)" style="cursor:pointer"&gt; 		&lt;tr&gt; 			&lt;td style="width:10px" class="hidden_Plus"&gt;				&amp;nbsp;			&lt;/td&gt;			&lt;td style="font-weight:bold;padding-left:2px;font-family:Verdana,Arial;font-size:9pt;"&gt;								regCreateKeyHelper			&lt;/td&gt; 		&lt;/tr&gt; 	&lt;/tbody&gt; 	&lt;tbody style="display:none"&gt; 		&lt;tr&gt;			&lt;td style="background-image:url(//rsdn.org/Forum/images/line.gif);background-repeat:repeat-y;background-position:center"&gt;							&lt;/td&gt;			&lt;td style="padding-left:3px;font-family:Verdana,Arial;font-size:8pt"&gt;&lt;pre class='c'&gt;&lt;code&gt;&lt;span class='kw'&gt;inline&lt;/span&gt;
HKEY regCreateKeyHelper(HKEY hKeyRoot, &lt;span class='kw'&gt;const&lt;/span&gt; std::wstring &amp;amp;path, REGSAM samDesired)
{
    &lt;span class='kw'&gt;if&lt;/span&gt; (isWindows32OnWindows64())
    {
        samDesired |= KEY_WOW64_64KEY;
    }
    
    HKEY hKeyRes = 0;
    DWORD dwDisposition = 0;

    LSTATUS status = RegCreateKeyExW( hKeyRoot
                                    , path.c_str()
                                    , 0 &lt;span class='com'&gt;// reserved&lt;/span&gt;
                                    , 0 &lt;span class='com'&gt;// lpClass - The user-defined class type of this key. This parameter may be ignored. This parameter can be NULL.&lt;/span&gt;
                                    , REG_OPTION_NON_VOLATILE &lt;span class='com'&gt;// default, 0&lt;/span&gt;
                                    , samDesired
                                    , 0 &lt;span class='com'&gt;// lpSecurityAttributes&lt;/span&gt;
                                    , &amp;amp;hKeyRes
                                    , &amp;amp;dwDisposition
                                    );
    &lt;span class='kw'&gt;if&lt;/span&gt; (status!=ERROR_SUCCESS)
    {
        &lt;span class='kw'&gt;return&lt;/span&gt; 0;
    }

    &lt;span class='kw'&gt;return&lt;/span&gt; hKeyRes;
}&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt; 		&lt;/tr&gt; 		&lt;tr&gt;			&lt;td style="height:1px;background-image:url(//rsdn.org/Forum/images/corner.gif);background-repeat:no-repeat;background-position:center"&gt;							&lt;/td&gt;			&lt;td&gt;&lt;/td&gt;		&lt;/tr&gt;	&lt;/tbody&gt; &lt;/table&gt; &lt;br /&gt;
&lt;br /&gt;
Задаю переменную:&lt;br /&gt;
&lt;table style="margin-top:5px;margin-bottom:5px" cellpadding="0" cellspacing="0"&gt; 	&lt;tbody onclick="toggleExpand(this)" style="cursor:pointer"&gt; 		&lt;tr&gt; 			&lt;td style="width:10px" class="hidden_Plus"&gt;				&amp;nbsp;			&lt;/td&gt;			&lt;td style="font-weight:bold;padding-left:2px;font-family:Verdana,Arial;font-size:9pt;"&gt;								registerShellExtentionHandlerApplication			&lt;/td&gt; 		&lt;/tr&gt; 	&lt;/tbody&gt; 	&lt;tbody style="display:none"&gt; 		&lt;tr&gt;			&lt;td style="background-image:url(//rsdn.org/Forum/images/line.gif);background-repeat:repeat-y;background-position:center"&gt;							&lt;/td&gt;			&lt;td style="padding-left:3px;font-family:Verdana,Arial;font-size:8pt"&gt;&lt;pre class='c'&gt;&lt;code&gt;&lt;span class='kw'&gt;inline
bool&lt;/span&gt; registerShellExtentionHandlerApplication(&lt;span class='kw'&gt;const&lt;/span&gt; std::wstring &amp;amp;appNameId, &lt;span class='kw'&gt;const&lt;/span&gt; std::wstring &amp;amp;shellVerb, &lt;span class='kw'&gt;const&lt;/span&gt; std::wstring &amp;amp;appCommand)
{

    &lt;span class='com'&gt;// Компьютер\HKEY_CLASSES_ROOT\gg_app
    //     shell
    //       open
    //         command
    //           default value: "gg.exe" "%1"
    //  
    // HKEY_CLASSES_ROOT\.gg
    //     default value gg_app
    //  
    // The nameless key is the default one - https://learn.microsoft.com/en-us/dotnet/api/microsoft.win32.registry.setvalue?view=net-8.0&amp;amp;redirectedfrom=MSDN#overloads&lt;/span&gt;

    std::wstring regPath = appNameId;
    regPath.append(L&lt;span class='str'&gt;"\\shell"&lt;/span&gt;);
    regPath.append(L&lt;span class='str'&gt;"\\"&lt;/span&gt;);
    regPath.append(shellVerb);
    regPath.append(L&lt;span class='str'&gt;"\\command"&lt;/span&gt;);

    HKEY hKey = regCreateKeyHelper(HKEY_CLASSES_ROOT, regPath, KEY_READ|KEY_WRITE); &lt;span class='com'&gt;// !!! Тут возвращает 0&lt;/span&gt;

    &lt;span class='kw'&gt;if&lt;/span&gt; (!hKey)
        &lt;span class='kw'&gt;return false&lt;/span&gt;;

    &lt;span class='kw'&gt;bool&lt;/span&gt; res = regSetValue(hKey, L&lt;span class='str'&gt;""&lt;/span&gt; &lt;span class='com'&gt;/* varName */&lt;/span&gt; , appCommand);

    RegCloseKey(hKey);

    &lt;span class='kw'&gt;return&lt;/span&gt; res;
}&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt; 		&lt;/tr&gt; 		&lt;tr&gt;			&lt;td style="height:1px;background-image:url(//rsdn.org/Forum/images/corner.gif);background-repeat:no-repeat;background-position:center"&gt;							&lt;/td&gt;			&lt;td&gt;&lt;/td&gt;		&lt;/tr&gt;	&lt;/tbody&gt; &lt;/table&gt; &lt;br /&gt;
&lt;br /&gt;
Использую:&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;    &lt;span class='kw'&gt;bool&lt;/span&gt; regRes = registerShellExtentionHandlerApplication(L&lt;span class='str'&gt;"gg-app"&lt;/span&gt;, L&lt;span class='str'&gt;"open"&lt;/span&gt;, L&lt;span class='str'&gt;"gg %1"&lt;/span&gt;);&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Правда, ломается до установки, на этапе regCreateKeyHelper&lt;br /&gt;
&lt;br /&gt;
Что не так делаю?&lt;/div&gt;
				
		</description>
		
		<category>winapi</category>
		<pubDate>Mon, 06 May 2024 21:57:01 GMT</pubDate>
		
			<author>пффф &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>4</slash:comments>
		
	</item>

	<item>
		<title>RegOpenKeyExW не находит ветку, но я её вижу в редакторе реестра</title>
		<link>http://rsdn.org/Forum/winapi/8742568.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/winapi/8742568</guid>
		<comments>http://rsdn.org/Forum/winapi/8742568</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8742568</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8742568</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8742568</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Привет!&lt;br /&gt;
&lt;br /&gt;
Пытаюсь открыть ветку реестра, получаю код 2 &amp;mdash; ERROR_FILE_NOT_FOUND.&lt;br /&gt;
&lt;br /&gt;
Попытался последовательно открывать этот путь по частям &amp;mdash; всё открывается, кроме последнего. Не пойму, что не так. Путь был скопирован из адресной строки редактора реестра, раздел я в редакторе вижу, переменные посмотреть могу, даже поменять могу&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;        HKEY hk = 0;
        LSTATUS status = RegOpenKeyExW( HKEY_LOCAL_MACHINE
                                      , L&lt;span class='str'&gt;"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Conan Package Manager_is1"&lt;/span&gt;
                                      &lt;span class='com'&gt;//, L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall"
                                      //, L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion"
                                      //, L"SOFTWARE\\Microsoft\\Windows"
                                      //, L"SOFTWARE\\Microsoft"
                                      //, L"SOFTWARE"&lt;/span&gt;
                                      , 0 &lt;span class='com'&gt;// ulOptions&lt;/span&gt;
                                      , KEY_READ
                                      , &amp;amp;hk
                                      );
        &lt;span class='kw'&gt;if&lt;/span&gt; (status==ERROR_SUCCESS)
        {
            &lt;span class='com'&gt;// ...&lt;/span&gt;
        }&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Что я не так делаю?&lt;/div&gt;
				
		</description>
		
		<category>winapi</category>
		<pubDate>Sun, 05 May 2024 19:33:33 GMT</pubDate>
		
			<author>пффф &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>1</slash:comments>
		
	</item>

	<item>
		<title>WTL и GCC (MinGW)?</title>
		<link>http://rsdn.org/Forum/winapi/8723891.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/winapi/8723891</guid>
		<comments>http://rsdn.org/Forum/winapi/8723891</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8723891</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8723891</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8723891</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Здравствуйте!&lt;br /&gt;
&lt;br /&gt;
Никто не пробовал собирать WTL-приложухи с использованием GCC/MinGW? Для этого ещё SDK же надо нормальное, или тех клочков, которые идут с ним, будет достаточно?&lt;/div&gt;
				
		</description>
		
		<category>winapi</category>
		<pubDate>Wed, 03 Apr 2024 19:31:26 GMT</pubDate>
		
			<author>Marty &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>0</slash:comments>
		
	</item>

	<item>
		<title>HDC (MemDC) и его bitmap</title>
		<link>http://rsdn.org/Forum/winapi/8721254.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/winapi/8721254</guid>
		<comments>http://rsdn.org/Forum/winapi/8721254</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8721254</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8721254</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8721254</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Привет!&lt;br /&gt;
&lt;br /&gt;
Допустим, я делаю memDC:&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;HDC hMemDc = ::CreateCompatibleDC(hScreenDc);
HBITMAP hMemBmp    = ::CreateCompatibleBitmap(hScreenDc, clientSize.x, clientSize.y );
HBITMAP hOldMemBmp = (HBITMAP)::SelectObject(hMemDc, (HGDIOBJ)hMemBmp);&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Перед удалением hMemDc обычно принято восстанавливать в контексте hOldMemBmp. А надо ли это обязательно делать? Я так понимаю, что при разрушении hMemDc он разрушит тот hBitmap, который в него выбран &amp;mdash; т.е. тот, который я создал и выбрал в DC. А hOldMemBmp я сам разрушу. Нормально так делать?&lt;/div&gt;
				
		</description>
		
		<category>winapi</category>
		<pubDate>Fri, 29 Mar 2024 15:47:28 GMT</pubDate>
		
			<author>пффф &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>3</slash:comments>
		
	</item>

	<item>
		<title>"Самовосстановление" файла</title>
		<link>http://rsdn.org/Forum/winapi/8709599.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/winapi/8709599</guid>
		<comments>http://rsdn.org/Forum/winapi/8709599</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8709599</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8709599</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8709599</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Приветствую!&lt;br /&gt;
Не уверен, что это в WinAPI, но просто куда еще &amp;mdash; неясно &lt;img border='0' width='15' height='15' src='//rsdn.org/Forum/images/smile.gif' /&gt;&lt;br /&gt;
Исходные данные: файл лежит в подкаталоге %PROGRAMDATA% (Ну, например, C:\ProgramData\SoftwareName\file.txt), софт запускается "as admin".&lt;br /&gt;
Что происходит: софт меняет файл (записывает некоторые данные в него), после перезапускается винда, запускается софт снова &amp;mdash; а данных и нет. То есть, файл как будто восстановился в исходном виде.&lt;br /&gt;
Если винду не перезапускать, то все ок. Хоть 100 раз запускай софт. Но стоит сделать рестарт и приехали &lt;img border='0' width='15' height='15' src='//rsdn.org/Forum/images/smile.gif' /&gt;&lt;br /&gt;
Кто-либо сталкивался с подобным? Откуда хоть искать начинать? &lt;img border='0' width='15' height='15' src='//rsdn.org/Forum/images/smile.gif' /&gt;&lt;/div&gt;
				
		</description>
		
		<category>winapi</category>
		<pubDate>Mon, 11 Mar 2024 08:22:35 GMT</pubDate>
		
			<author>CyberDemon &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>4</slash:comments>
		
	</item>

	<item>
		<title>Скомпоновать HBITMAP из других HBITMAP</title>
		<link>http://rsdn.org/Forum/winapi/8700742.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/winapi/8700742</guid>
		<comments>http://rsdn.org/Forum/winapi/8700742</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8700742</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8700742</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8700742</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Здраствуйте!&lt;br /&gt;
&lt;br /&gt;
Гружу кадры из GIFки при помощи &lt;a class="wikipedia m" href="https://en.wikipedia.org/wiki/Windows_Imaging_Component" target="_blank"&gt;WIC&lt;/a&gt; в отдельные HBITMAP &amp;mdash; всё нормально, отображаются как надо:&lt;br /&gt;
&lt;br /&gt;
&lt;table style="margin-top:5px;margin-bottom:5px" cellpadding="0" cellspacing="0"&gt; 	&lt;tbody onclick="toggleExpand(this)" style="cursor:pointer"&gt; 		&lt;tr&gt; 			&lt;td style="width:10px" class="hidden_Plus"&gt;				&amp;nbsp;			&lt;/td&gt;			&lt;td style="font-weight:bold;padding-left:2px;font-family:Verdana,Arial;font-size:9pt;"&gt;								Скрытый текст			&lt;/td&gt; 		&lt;/tr&gt; 	&lt;/tbody&gt; 	&lt;tbody style="display:none"&gt; 		&lt;tr&gt;			&lt;td style="background-image:url(//rsdn.org/Forum/images/line.gif);background-repeat:repeat-y;background-position:center"&gt;							&lt;/td&gt;			&lt;td style="padding-left:3px;font-family:Verdana,Arial;font-size:8pt"&gt;&lt;img border='0' src='http://files.rsdn.org/148778/2024_01_02_22_22_32_image.png' /&gt;&lt;/td&gt; 		&lt;/tr&gt; 		&lt;tr&gt;			&lt;td style="height:1px;background-image:url(//rsdn.org/Forum/images/corner.gif);background-repeat:no-repeat;background-position:center"&gt;							&lt;/td&gt;			&lt;td&gt;&lt;/td&gt;		&lt;/tr&gt;	&lt;/tbody&gt; &lt;/table&gt; &lt;br /&gt;
&lt;br /&gt;
Пытаюсь создать одно изображение изо всех кадров. Создаю большую битмапку, делаю для неё HDC, делаю селект битмапки туда.&lt;br /&gt;
Потом в цикле делаю рисование, как на экран&lt;br /&gt;
&lt;br /&gt;
&lt;table style="margin-top:5px;margin-bottom:5px" cellpadding="0" cellspacing="0"&gt; 	&lt;tbody onclick="toggleExpand(this)" style="cursor:pointer"&gt; 		&lt;tr&gt; 			&lt;td style="width:10px" class="hidden_Plus"&gt;				&amp;nbsp;			&lt;/td&gt;			&lt;td style="font-weight:bold;padding-left:2px;font-family:Verdana,Arial;font-size:9pt;"&gt;								Скрытый текст			&lt;/td&gt; 		&lt;/tr&gt; 	&lt;/tbody&gt; 	&lt;tbody style="display:none"&gt; 		&lt;tr&gt;			&lt;td style="background-image:url(//rsdn.org/Forum/images/line.gif);background-repeat:repeat-y;background-position:center"&gt;							&lt;/td&gt;			&lt;td style="padding-left:3px;font-family:Verdana,Arial;font-size:8pt"&gt;&lt;pre class='c'&gt;&lt;code&gt;            &lt;span class='kw'&gt;if&lt;/span&gt; (!bRescaleFrames)
            {
                BitBlt( dstDcAuto.get(), targetImagePos.width, targetImagePos.height  &lt;span class='com'&gt;// hdc назначения и положение в нём&lt;/span&gt;
                      , targetImageSize.width, targetImageSize.height
                      , srcDcAuto.get()
                      , srcImagePos.width, srcImagePos.height
                      , SRCCOPY              &lt;span class='com'&gt;// Тупо копируем пиксели&lt;/span&gt;
                      ); 
            }
            &lt;span class='kw'&gt;else&lt;/span&gt;
            {
                &lt;span class='kw'&gt;auto&lt;/span&gt; autoStretchBltMode = AutoStretchBltMode(dstDcAuto.get(), HALFTONE);
                &lt;span class='com'&gt;//rasterFnRes =&lt;/span&gt;
                StretchBlt( dstDcAuto.get(), targetImagePos.width, targetImagePos.height  &lt;span class='com'&gt;// hdc назначения и положение в нём&lt;/span&gt;
                          , targetImageSize.width, targetImageSize.height
                          , srcDcAuto.get()
                          , srcImagePos.width, srcImagePos.height
                          , srcImageSize.width, srcImageSize.height
                          , SRCCOPY              &lt;span class='com'&gt;// Тупо копируем пиксели&lt;/span&gt;
                          );
            }&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt; 		&lt;/tr&gt; 		&lt;tr&gt;			&lt;td style="height:1px;background-image:url(//rsdn.org/Forum/images/corner.gif);background-repeat:no-repeat;background-position:center"&gt;							&lt;/td&gt;			&lt;td&gt;&lt;/td&gt;		&lt;/tr&gt;	&lt;/tbody&gt; &lt;/table&gt; &lt;br /&gt;
&lt;br /&gt;
При отрисовке этой ленты это выглядит так:&lt;br /&gt;
&lt;table style="margin-top:5px;margin-bottom:5px" cellpadding="0" cellspacing="0"&gt; 	&lt;tbody onclick="toggleExpand(this)" style="cursor:pointer"&gt; 		&lt;tr&gt; 			&lt;td style="width:10px" class="hidden_Plus"&gt;				&amp;nbsp;			&lt;/td&gt;			&lt;td style="font-weight:bold;padding-left:2px;font-family:Verdana,Arial;font-size:9pt;"&gt;								Скрытый текст			&lt;/td&gt; 		&lt;/tr&gt; 	&lt;/tbody&gt; 	&lt;tbody style="display:none"&gt; 		&lt;tr&gt;			&lt;td style="background-image:url(//rsdn.org/Forum/images/line.gif);background-repeat:repeat-y;background-position:center"&gt;							&lt;/td&gt;			&lt;td style="padding-left:3px;font-family:Verdana,Arial;font-size:8pt"&gt;&lt;img border='0' src='http://files.rsdn.org/148778/2024_01_02_22_27_25_image.png' /&gt;&lt;/td&gt; 		&lt;/tr&gt; 		&lt;tr&gt;			&lt;td style="height:1px;background-image:url(//rsdn.org/Forum/images/corner.gif);background-repeat:no-repeat;background-position:center"&gt;							&lt;/td&gt;			&lt;td&gt;&lt;/td&gt;		&lt;/tr&gt;	&lt;/tbody&gt; &lt;/table&gt; &lt;br /&gt;
&lt;br /&gt;
Если сохранить полученное изображение в BMP-файл, то Paint.NET оно выглядит так:&lt;br /&gt;
&lt;table style="margin-top:5px;margin-bottom:5px" cellpadding="0" cellspacing="0"&gt; 	&lt;tbody onclick="toggleExpand(this)" style="cursor:pointer"&gt; 		&lt;tr&gt; 			&lt;td style="width:10px" class="hidden_Plus"&gt;				&amp;nbsp;			&lt;/td&gt;			&lt;td style="font-weight:bold;padding-left:2px;font-family:Verdana,Arial;font-size:9pt;"&gt;								Скрытый текст			&lt;/td&gt; 		&lt;/tr&gt; 	&lt;/tbody&gt; 	&lt;tbody style="display:none"&gt; 		&lt;tr&gt;			&lt;td style="background-image:url(//rsdn.org/Forum/images/line.gif);background-repeat:repeat-y;background-position:center"&gt;							&lt;/td&gt;			&lt;td style="padding-left:3px;font-family:Verdana,Arial;font-size:8pt"&gt;&lt;img border='0' src='http://files.rsdn.org/148778/2024_01_02_22_28_26_image.png' /&gt;&lt;/td&gt; 		&lt;/tr&gt; 		&lt;tr&gt;			&lt;td style="height:1px;background-image:url(//rsdn.org/Forum/images/corner.gif);background-repeat:no-repeat;background-position:center"&gt;							&lt;/td&gt;			&lt;td&gt;&lt;/td&gt;		&lt;/tr&gt;	&lt;/tbody&gt; &lt;/table&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Что я делаю не так?&lt;br /&gt;
&lt;br /&gt;
ЗЫ Теоретически, я могу ручками байты сформровать для результирующей картинки, проблема в том, что кадры в гифке могут иметь разный размер, и я в одном из вариантов делаю StretchBlt для масштабирования&lt;br /&gt;
&lt;br /&gt;
ЗЫЫ Да, из гифки картинки я гружу в 32х-битный HBITMAL, и оно поэтому отображается, когда рисую покадрово, с прозрачностью.&lt;/div&gt;
				
		</description>
		
		<category>winapi</category>
		<pubDate>Tue, 27 Feb 2024 19:29:20 GMT</pubDate>
		
			<author>пффф &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>0</slash:comments>
		
	</item>

	<item>
		<title>Протолкнуть или пикнуть сообщения в очереди</title>
		<link>http://rsdn.org/Forum/winapi/8696540.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/winapi/8696540</guid>
		<comments>http://rsdn.org/Forum/winapi/8696540</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8696540</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8696540</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8696540</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Привет&lt;br /&gt;
&lt;br /&gt;
Мышкины сообщения перебивают таймерные. Мультимедия таймеры пока трогать не хочу, хочу по каждому мышкиному сообщению проверять очередь сообщений окна и извлекать и отправлять на обычную обработку таймерные сообщения, если они есть в очереди&lt;br /&gt;
&lt;br /&gt;
Что можно сделать?&lt;br /&gt;
&lt;br /&gt;
Жесткий таймер не нужен, WM_TIMER норм с его плюс-минусом, но мышка его напрочь забивает, хочу чутка ему помочь&lt;/div&gt;
				
		</description>
		
		<category>winapi</category>
		<pubDate>Tue, 20 Feb 2024 22:13:14 GMT</pubDate>
		
			<author>пффф &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>2</slash:comments>
		
	</item>

	<item>
		<title>fopen, rename и дата создания файла</title>
		<link>http://rsdn.org/Forum/winapi/8696150.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/winapi/8696150</guid>
		<comments>http://rsdn.org/Forum/winapi/8696150</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8696150</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8696150</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8696150</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;система Win10, FS &amp;mdash; NTFS&lt;br /&gt;
Наткнулся на проблему на ровном месте. Создаётся файл с помощью fopen с доступом "at" (можно и "wt"), через какое-то время закрывается и переименовывается в другой (типа, складывается архив). На месте него создаётся новый с именем, которое было у предыдущего до переименования. С датами последней записи, последнего доступа и последней модификации всё в порядке. А вот дата создания получается старая, такая же, какая была у предыдущего файла до переименования.&lt;/div&gt;
				
		</description>
		
		<category>winapi</category>
		<pubDate>Tue, 20 Feb 2024 09:27:00 GMT</pubDate>
		
			<author>Maniacal &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>13</slash:comments>
		
	</item>
</channel>
</rss>
