<?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>Форум 'ATL/WTL' на RSDN</title>
    <link>http://rsdn.org/Forum/atl/</link>
    <description>Программирование с использованием библиотек ATL и WTL.</description>
    <category>atl</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>Mon, 13 Apr 2026 18:39:45 GMT</lastBuildDate>
    <ttl>5</ttl>
	<item>
		<title>Библиотека WTL вышел release 10.01</title>
		<link>http://rsdn.org/Forum/atl/9066124.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/atl/9066124</guid>
		<comments>http://rsdn.org/Forum/atl/9066124</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9066124</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9066124</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9066124</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Приветствую всех. Давно не выходили новые версии WTL и вот, сабж.&lt;br /&gt;
&lt;br /&gt;
&lt;a class="m" href="https://sourceforge.net/projects/wtl/files/WTL%2010/WTL%2010.01%20Release/" target="_blank"&gt;WTL 10.01 Release&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a class="m" href="https://wtl.sourceforge.io/" target="_blank"&gt;WTL 10.01 was released&lt;/a&gt;&lt;/div&gt;
				
		</description>
		
		<category>atl</category>
		<pubDate>Thu, 12 Mar 2026 19:05:12 GMT</pubDate>
		
			<author>Alexander_S_U &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>4</slash:comments>
		
	</item>

	<item>
		<title>WTL и GCC (MinGW)?</title>
		<link>http://rsdn.org/Forum/atl/8726546.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/atl/8726546</guid>
		<comments>http://rsdn.org/Forum/atl/8726546</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8726546</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8726546</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8726546</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>atl</category>
		<pubDate>Sun, 07 Apr 2024 12:00:10 GMT</pubDate>
		
			<author>Marty &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>3</slash:comments>
		
	</item>

	<item>
		<title>cannot convert from 'ATL::CWindow' to 'WTL::CButtonT&lt;ATL::CW</title>
		<link>http://rsdn.org/Forum/atl/8307894.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/atl/8307894</guid>
		<comments>http://rsdn.org/Forum/atl/8307894</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8307894</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8307894</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8307894</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Здравствуйте!&lt;br /&gt;
&lt;br /&gt;
Давно не брал я в руки шашек, и решил тут пописать на WTL. Так как студия у меня 2019ая, решил скачать WTL поновее &amp;mdash; 10.&lt;br /&gt;
&lt;br /&gt;
Взял пример BmpView, вставил сорцы в свой проект, собираю &amp;mdash; ошибка:&lt;br /&gt;
&lt;blockquote class='q'&gt;&lt;p&gt;1&amp;gt;\props.h(195,1): error C2440: 'initializing': cannot convert from 'ATL::CWindow' to 'WTL::CButtonT&amp;lt;ATL::CWindow&amp;gt;'&lt;br /&gt;
1&amp;gt;\props.h(195,21): message : No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called&lt;/p&gt;&lt;/blockquote&gt;
&lt;br /&gt;
Код такой (props.h):&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;    CPropertySheetWindow sheet = GetPropertySheet();
    sheet.CancelToClose();
    RECT rect;
    &lt;span class='com'&gt;//CButton btnCancel = sheet.GetDlgItem(IDCANCEL); // !!!&lt;/span&gt;
    ATL::CWindow btnCancel = sheet.GetDlgItem(IDCANCEL);
    btnCancel.GetWindowRect(&amp;amp;rect);
    sheet.ScreenToClient(&amp;amp;rect);
    btnCancel.ShowWindow(SW_HIDE);&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;
Строчка !!! &amp;mdash; не собирается. Ну, я переделал, вроде собирается.&lt;br /&gt;
&lt;br /&gt;
Глянул CButtonT &amp;mdash; это&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;typedef&lt;/span&gt; CButtonT&amp;lt;ATL::CWindow&amp;gt;   CButton;&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;pre class='c'&gt;&lt;code&gt;&lt;span class='kw'&gt;template&lt;/span&gt; &amp;lt;&lt;span class='kw'&gt;class&lt;/span&gt; TBase&amp;gt;
&lt;span class='kw'&gt;class&lt;/span&gt; CButtonT : &lt;span class='kw'&gt;public&lt;/span&gt; TBase
{
&lt;span class='kw'&gt;public&lt;/span&gt;:
&lt;span class='com'&gt;// Constructors&lt;/span&gt;
    CButtonT(HWND hWnd = NULL) : TBase(hWnd)
    { }

    CButtonT&amp;lt; TBase &amp;gt;&amp;amp; &lt;span class='kw'&gt;operator&lt;/span&gt; =(HWND hWnd)
    {
        &lt;span class='kw'&gt;this&lt;/span&gt;-&amp;gt;m_hWnd = hWnd;
        &lt;span class='kw'&gt;return&lt;/span&gt; *&lt;span class='kw'&gt;this&lt;/span&gt;;
    }
&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;
CPropertySheetWindow.GetDlgItem возвращает ATL::CWindow. Ну, вроде бы логично, конструктора подходящего нет. Хотя, по идее, ATL::CWindow должен иметь operator HWND, и тогда должно вроде бы работать.&lt;br /&gt;
&lt;br /&gt;
Ладно. Попробовал в 2019 студии открыть идущий в комплекте с примером проект для 2010 студии. Попросило проапдейтить, и собралось без вопросов. Вот тут я не совсем понял, а как так?&lt;br /&gt;
&lt;br /&gt;
Есть идеи, куда поковырять?&lt;/div&gt;
				
		</description>
		
		<category>atl</category>
		<pubDate>Mon, 04 Jul 2022 02:02:46 GMT</pubDate>
		
			<author>Marty &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>2</slash:comments>
		
	</item>

	<item>
		<title>COM, ENTRY_PREFIX и PrxDll*</title>
		<link>http://rsdn.org/Forum/atl/7399577.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/atl/7399577</guid>
		<comments>http://rsdn.org/Forum/atl/7399577</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=7399577</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/7399577</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=7399577</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Здравствуйте!&lt;br /&gt;
&lt;br /&gt;
В COM совсем не умею, тыщу лет назад делал какой-то inproc, и все. Всякие RPC, Proxy, Threading'и и Apartments прошли мимо.&lt;br /&gt;
&lt;br /&gt;
Есть проект от 2008 студии. У меня студия 2017. Сконвертил, поправил кучу говнеца в настройках проектов, осталось вроде последнее, и что-то не соображу.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class='q'&gt;&lt;p&gt;warning C4005: 'ENTRY_PREFIX': macro redefinition&lt;br /&gt;
note: see previous definition of 'ENTRY_PREFIX'&lt;/p&gt;&lt;/blockquote&gt;
&lt;br /&gt;
В коде, который, как я понял, сгенерил midlc, есть&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;&lt;span class='kw'&gt;#define&lt;/span&gt; ENTRY_PREFIX    Prx&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
В итоге не линкуется с такими сообщениями:&lt;br /&gt;
&lt;blockquote class='q'&gt;&lt;p&gt;error LNK2001: unresolved external symbol PrxDllCanUnloadNow&lt;br /&gt;
error LNK2001: unresolved external symbol PrxDllGetClassObject&lt;br /&gt;
error LNK2001: unresolved external symbol PrxDllRegisterServer&lt;br /&gt;
error LNK2001: unresolved external symbol PrxDllUnregisterServer&lt;br /&gt;
unresolved external symbol AlternateStreamOverlay_ProxyFileInfo&lt;/p&gt;&lt;/blockquote&gt;
&lt;br /&gt;
Таких функций я что-то не нашел, как и не нашел какого-либо использования ENTRY_PREFIX для возможной препроцессорной генерации этих имен.&lt;br /&gt;
&lt;br /&gt;
Может, кто сталкивался?&lt;/div&gt;
				
		</description>
		
		<category>atl</category>
		<pubDate>Tue, 19 Mar 2019 21:21:15 GMT</pubDate>
		
			<author>Marty &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>2</slash:comments>
		
	</item>

	<item>
		<title>Диалоговые окна WTL в DLL</title>
		<link>http://rsdn.org/Forum/atl/7369342.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/atl/7369342</guid>
		<comments>http://rsdn.org/Forum/atl/7369342</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=7369342</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/7369342</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=7369342</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;img border='0' width='37' height='15' src='//rsdn.org/Forum/images/xz.gif' /&gt;&lt;br /&gt;
Он есть только в реализации класса EXE модуля.&lt;/div&gt;
				
		</description>
		
		<category>atl</category>
		<pubDate>Fri, 08 Feb 2019 07:02:18 GMT</pubDate>
		
			<author>Мёртвый Даун &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>2</slash:comments>
		
	</item>

	<item>
		<title>Подскажите...</title>
		<link>http://rsdn.org/Forum/atl/7324642.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/atl/7324642</guid>
		<comments>http://rsdn.org/Forum/atl/7324642</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=7324642</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/7324642</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=7324642</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Давно не пользовал WTL, опыта с ней мало...&lt;br /&gt;
&lt;br /&gt;
Есть у нас фронд энд, десктопное приложение, к нему можно писать плагины (DLL). Десктопное приложение может дергать функции плагина, ровно как и плагин может юзать функции приложения.&lt;br /&gt;
Всё всегда писалось только на WinAPI. Но от этих простыней кода меня уже трясет последнее время.&lt;br /&gt;
Решил заюзать WTL.&lt;br /&gt;
&lt;br /&gt;
1) Т.е. самого MDI Frame'а у меня как бы нет, десктопное приложение грузит плагин, плагин создает свои пункты меню и прочие элементы. Далее, если надо заюзать функционал плагина, делается вызов диалогов из меню. Вот тут первый тупеж. Я не хочу юзать модальные диалоги, хочу обычное MDI Child окно. Но HWND главного окна достать могу.&lt;br /&gt;
2) В этом окне хочу свои View со сплиттерами.&lt;br /&gt;
3) Так же хочу немодальные диалоги, тоже со сплиттерами.&lt;br /&gt;
&lt;br /&gt;
Какой примерно должен быть skeleton интерфейсной части моего плагина?&lt;/div&gt;
				
		</description>
		
		<category>atl</category>
		<pubDate>Fri, 14 Dec 2018 10:50:24 GMT</pubDate>
		
			<author>Мёртвый Даун &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>1</slash:comments>
		
	</item>

	<item>
		<title>Какую литературу по библиотеке ATL посоветуете?</title>
		<link>http://rsdn.org/Forum/atl/6670981.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/atl/6670981</guid>
		<comments>http://rsdn.org/Forum/atl/6670981</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=6670981</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/6670981</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=6670981</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Уважаемые коллеги, какие книги или материалы в Интернете Вы бы посоветовали мне прочитать по библиотеке ATL?&lt;/div&gt;
				
		</description>
		
		<category>atl</category>
		<pubDate>Thu, 19 Jan 2017 09:19:01 GMT</pubDate>
		
			<author>RussianFellow &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>8</slash:comments>
		
	</item>

	<item>
		<title>CFileDialog in WTL</title>
		<link>http://rsdn.org/Forum/atl/6005718.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/atl/6005718</guid>
		<comments>http://rsdn.org/Forum/atl/6005718</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=6005718</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/6005718</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=6005718</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Доброго времени суток. &lt;br /&gt;
&lt;br /&gt;
В диалоге выбора файла на Win XP не отображаются компоненты "Моего Компьютера" при нажатии кнопки слева (просто пусто). А в выпадающем списке сверху они все есть. На Win 7 такого не воспроизводиться. Может кто сталкивался с описанной проблемой?&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;CFileDialog file_dlg(TRUE);
if (file_dlg.DoModal() == IDOK)
{
...&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Этот же фрагмент в MFC на XP отображает компоненты успешно.&lt;/div&gt;
				
		</description>
		
		<category>atl</category>
		<pubDate>Mon, 06 Apr 2015 12:51:35 GMT</pubDate>
		
			<author>Age91 &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>1</slash:comments>
		
	</item>

	<item>
		<title>Странное поведение CTreeViewCtrl и SetCheckState</title>
		<link>http://rsdn.org/Forum/atl/5897342.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/atl/5897342</guid>
		<comments>http://rsdn.org/Forum/atl/5897342</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=5897342</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/5897342</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=5897342</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;VS2008, 2010.&lt;br /&gt;
&lt;br /&gt;
Есть примитивный WTL-диалог с деревом на нём. У дерева включено свойства "показывать чек-боксы".&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;&lt;span class='kw'&gt;class&lt;/span&gt; CMainDlg : &lt;span class='kw'&gt;public&lt;/span&gt; CDialogImpl&amp;lt;CMainDlg&amp;gt;
{
&lt;span class='kw'&gt;public&lt;/span&gt;:

    &lt;span class='kw'&gt;enum&lt;/span&gt; { IDD = IDD_MAINDLG };
    &lt;span class='com'&gt;// разное....
    // ......&lt;/span&gt;


    HTREEITEM htiRoot;
};&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
при инициализации делаю так:&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;LRESULT CMainDlg::OnInitDialog(UINT &lt;span class='com'&gt;/*uMsg*/&lt;/span&gt;, WPARAM &lt;span class='com'&gt;/*wParam*/&lt;/span&gt;, LPARAM &lt;span class='com'&gt;/*lParam*/&lt;/span&gt;, BOOL&amp;amp; &lt;span class='com'&gt;/*bHandled*/&lt;/span&gt;)
{
    WTL::CTreeViewCtrl tree;
    tree.Attach( GetDlgItem(IDC_TREE1) );
    htiRoot = tree.InsertItem( L&lt;span class='str'&gt;"All Items"&lt;/span&gt;, TVI_ROOT, TVI_LAST);
    &lt;span class='com'&gt;// добавляю ещё итемы&lt;/span&gt;
    tree.Expand( htiRoot );
    tree.SetCheckState( htiRoot, TRUE );
    tree.Detach();
    &lt;span class='kw'&gt;return&lt;/span&gt; TRUE;
}&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
по идее, должен выбраться корневой итем. Этого не происходит. А вот если отложить установку флажка на несколько миллисекунд, например, сделать так:&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;LRESULT CMainDlg::OnInitDialog(UINT &lt;span class='com'&gt;/*uMsg*/&lt;/span&gt;, WPARAM &lt;span class='com'&gt;/*wParam*/&lt;/span&gt;, LPARAM &lt;span class='com'&gt;/*lParam*/&lt;/span&gt;, BOOL&amp;amp; &lt;span class='com'&gt;/*bHandled*/&lt;/span&gt;)
{
    WTL::CTreeViewCtrl tree;
    tree.Attach( GetDlgItem(IDC_TREE1) );
    htiRoot = tree.InsertItem( L&lt;span class='str'&gt;"All Items"&lt;/span&gt;, TVI_ROOT, TVI_LAST);
    tree.Detach();

    &lt;span class='com'&gt;// заводим будильник&lt;/span&gt;
    SetTimer(99, 250);

    &lt;span class='kw'&gt;return&lt;/span&gt; TRUE;
}

LRESULT CMainDlg::OnTimer(UINT &lt;span class='com'&gt;/*uMsg*/&lt;/span&gt;, WPARAM wParam, LPARAM &lt;span class='com'&gt;/*lParam*/&lt;/span&gt;, BOOL&amp;amp; &lt;span class='com'&gt;/*bHandled*/&lt;/span&gt;)
{
    &lt;span class='kw'&gt;if&lt;/span&gt;( wParam != 99 ) &lt;span class='kw'&gt;return&lt;/span&gt; 0;
    KillTimer(99);
    WTL::CTreeViewCtrl tree;
    tree.Attach( GetDlgItem(IDC_TREE1) );
    tree.SetCheckState( htiRoot, TRUE );
    tree.Detach();
    &lt;span class='kw'&gt;return&lt;/span&gt; 0;
}&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
то итем выбирается. Почему итем не выбирается из OnInitDialog?&lt;/div&gt;
				
		</description>
		
		<category>atl</category>
		<pubDate>Fri, 19 Dec 2014 10:54:34 GMT</pubDate>
		
			<author>ZealPack &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>5</slash:comments>
		
	</item>

	<item>
		<title>RICHEDIT50W и CRichEditCtrl и VC++2013</title>
		<link>http://rsdn.org/Forum/atl/5879052.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/atl/5879052</guid>
		<comments>http://rsdn.org/Forum/atl/5879052</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=5879052</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/5879052</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=5879052</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Привет&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;&lt;span class='kw'&gt;class&lt;/span&gt; ChatCtrl: &lt;span class='kw'&gt;public&lt;/span&gt; CWindowImpl&amp;lt;ChatCtrl, CRichEditCtrl&amp;gt; ...&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;const auto&lt;/span&gt; l_res = ctrlClient.Create(m_MessagePanelHWnd, m_MessagePanelRECT, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN |
                                             WS_VSCROLL | ES_AUTOVSCROLL | ES_MULTILINE | ES_NOHIDESEL | ES_READONLY, WS_EX_STATICEDGE, IDC_CLIENT);
        &lt;span class='kw'&gt;if&lt;/span&gt; (!l_res)
        {
            dcdebug(&lt;span class='str'&gt;"Error create BaseChatFrame::createChatCtrl %s"&lt;/span&gt;, Util::translateError().c_str());
            dcassert(0);
        }
        &lt;span class='kw'&gt;else&lt;/span&gt;
        {
            ctrlClient.LimitText(0);
            ctrlClient.SetFont(Fonts::g_font);&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
После перехода на VC++2013 c 2010&lt;br /&gt;
стало в отладке падать вот такая ошибка:&lt;br /&gt;
&lt;br /&gt;
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include\atlwin.h(5275) : atlTraceWindowing &amp;mdash; ERROR : Could not obtain Window Class information for RICHEDIT50W&lt;br /&gt;
Error create BaseChatFrame::createChatCtrl [error: 1411]Assertion hit in windows\BaseChatFrame.cpp(61): 0&lt;br /&gt;
&lt;br /&gt;
в WTl вот такой код&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;                &lt;span class='com'&gt;// Try global class&lt;/span&gt;
                &lt;span class='kw'&gt;if&lt;/span&gt;(!T::GetClassInfoEx(NULL, p-&amp;gt;m_lpszOrigName, &amp;amp;wc))
                {
                    &lt;span class='com'&gt;// try process local&lt;/span&gt;
                    &lt;span class='kw'&gt;if&lt;/span&gt;(!T::GetClassInfoEx(pBaseModule-&amp;gt;m_hInst, p-&amp;gt;m_lpszOrigName, &amp;amp;wc))
                    {
                        ATLTRACE(atlTraceWindowing, 0, _T(&lt;span class='str'&gt;"ERROR : Could not obtain Window Class information for %s\n"&lt;/span&gt;), p-&amp;gt;m_lpszOrigName);
                        &lt;span class='kw'&gt;return&lt;/span&gt; 0;
                    }
                }&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
при этом в релизе все работает и окно создается&lt;br /&gt;
не могу что сломалось.&lt;br /&gt;
платформу выставил Visual Studio 2013 &amp;mdash; Windows XP (v120_xp)&lt;br /&gt;
нужно чтобы приложение работало под Win XP&lt;/div&gt;
				
		</description>
		
		<category>atl</category>
		<pubDate>Thu, 04 Dec 2014 04:00:03 GMT</pubDate>
		
			<author>PPA &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>0</slash:comments>
		
	</item>

	<item>
		<title>Как затащить ATL в VS Express 2013 ?</title>
		<link>http://rsdn.org/Forum/atl/5850451.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/atl/5850451</guid>
		<comments>http://rsdn.org/Forum/atl/5850451</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=5850451</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/5850451</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=5850451</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Пишут что ATL входит в состав WDK, запустил инсталляцию WDK, там выбора никакого нет, ставится что-то молча, после чего ATL так и не появилась.&lt;br /&gt;
Проблема решаема ? или ATL только с Prof (и выше) версией может использоваться ?&lt;/div&gt;
				
		</description>
		
		<category>atl</category>
		<pubDate>Tue, 11 Nov 2014 13:34:46 GMT</pubDate>
		
			<author>Evgeniy Skvortsov &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>9</slash:comments>
		
	</item>

	<item>
		<title>Allow ActiveX controls and plugins</title>
		<link>http://rsdn.org/Forum/atl/5773610.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/atl/5773610</guid>
		<comments>http://rsdn.org/Forum/atl/5773610</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=5773610</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/5773610</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=5773610</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Приветсвую!&lt;br /&gt;
Имеется старое ATL|WTL приложение. Писал не я и под винду давно не программировал.&lt;br /&gt;
В совтине есть панель с IWebBrowser2 в котором отображается содержимое заданной веб-странички.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;class CHtmlView:
    public IDispEventSimpleImpl&amp;lt;1, CHtmlView, &amp;amp;DIID_DWebBrowserEvents2&amp;gt;,
    public CWindowImpl&amp;lt;CHtmlView, CAxWindow&amp;gt;,
    public CMessageFilter&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
При запуске совтины появляется запрос типа "Do you want allow software such as ActiveX controls and plugins to run?"&lt;br /&gt;
Как сделать что-бы это сообщение не появлялось и что-бы было разрешено отображать флеш в этом окошке?&lt;/div&gt;
				
		</description>
		
		<category>atl</category>
		<pubDate>Mon, 08 Sep 2014 07:14:07 GMT</pubDate>
		
			<author>dunamo &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>2</slash:comments>
		
	</item>

	<item>
		<title>Наследование от базового интерфейса public IDispatch</title>
		<link>http://rsdn.org/Forum/atl/5709640.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/atl/5709640</guid>
		<comments>http://rsdn.org/Forum/atl/5709640</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=5709640</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/5709640</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=5709640</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;
IBase : IDispatch&lt;br /&gt;
   [ id(1) ]HRESULT AddObject([in] IBase *pObject);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IDerived1 : IBase&lt;br /&gt;
IDerived2 : IBase&lt;br /&gt;
IDerived3 : IBase&lt;br /&gt;
...&lt;br /&gt;
много таких&lt;br /&gt;
&lt;br /&gt;
Сделал с помощью ClassWizard CBase,&lt;br /&gt;
переделал в шаблон&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Файл Base.h&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;&lt;span class='kw'&gt;template&lt;/span&gt; &amp;lt;&lt;b&gt;&lt;span class='kw'&gt;class&lt;/span&gt; CT&lt;/b&gt;, &lt;span class='kw'&gt;class&lt;/span&gt; T, &lt;span class='kw'&gt;const&lt;/span&gt; IID* piid = &amp;amp;&lt;span class='kw'&gt;__uuidof&lt;/span&gt;(T), &lt;span class='kw'&gt;const&lt;/span&gt; GUID* plibid = &amp;amp;CAtlModule::m_libid, WORD wMajor = 1,
WORD wMinor = 0, &lt;span class='kw'&gt;class&lt;/span&gt; tihclass = CComTypeInfoHolder&amp;gt;
&lt;span class='kw'&gt;class&lt;/span&gt; CBase : 
    &lt;span class='kw'&gt;public&lt;/span&gt; IDispatchImpl &amp;lt;T, piid, plibid, wMajor, wMinor, tihclass &amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Файл Derived1.h&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;&lt;span class='kw'&gt;class&lt;/span&gt; ATL_NO_VTABLE CDerived1:

    &lt;span class='kw'&gt;public&lt;/span&gt; CComObjectRootEx&amp;lt;CComSingleThreadModel&amp;gt;,
    &lt;span class='kw'&gt;public&lt;/span&gt; CComCoClass&amp;lt;CDerived1, &amp;amp;CLSID_NULL&amp;gt;,
    &lt;span class='kw'&gt;public&lt;/span&gt; IConnectionPointContainerImpl&amp;lt; CDerived1 &amp;gt;,
    &lt;span class='kw'&gt;public&lt;/span&gt; CProxy_IBaseEvents&amp;lt; CDerived1 &amp;gt;,

    &lt;span class='kw'&gt;public&lt;/span&gt; CBase&amp;lt;&lt;b&gt;CDerived1&lt;/b&gt;, IDerived1, &amp;amp;IID_IDerived1, &amp;amp;LIBID_TestLib, &lt;span class='com'&gt;/*wMajor =*/&lt;/span&gt; 1, &lt;span class='com'&gt;/*wMinor =*/&lt;/span&gt; 0&amp;gt;

{
&lt;span class='kw'&gt;public&lt;/span&gt;:
    CDerived1()
    {
    }
    BEGIN_COM_MAP(CDerived1)
        COM_INTERFACE_ENTRY(IDerived1)
        COM_INTERFACE_ENTRY(IBase)
        COM_INTERFACE_ENTRY(IDispatch)
        COM_INTERFACE_ENTRY(IConnectionPointContainer)
    END_COM_MAP()&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Далее извещение о событии:&lt;br /&gt;
&lt;br /&gt;
Файл Base.h&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;STDMETHODIMP AddObject(IBase * pObject)
{
       &lt;b&gt;(&lt;span class='kw'&gt;static_cast&lt;/span&gt;&amp;lt; CT *&amp;gt;(&lt;span class='kw'&gt;this&lt;/span&gt;))-&amp;gt;&lt;/b&gt;Fire_OnAddObject(pObject);
        &lt;span class='kw'&gt;return&lt;/span&gt; S_OK;
}&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Это нормально ?&lt;br /&gt;
Или можно как-то проще и красивее сделать ?&lt;/div&gt;
				
		</description>
		
		<category>atl</category>
		<pubDate>Fri, 25 Jul 2014 08:24:00 GMT</pubDate>
		
		
			<slash:comments>0</slash:comments>
		
	</item>

	<item>
		<title>virtual WTL::CListViewCtrl</title>
		<link>http://rsdn.org/Forum/atl/5609588.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/atl/5609588</guid>
		<comments>http://rsdn.org/Forum/atl/5609588</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=5609588</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/5609588</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=5609588</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Привет всем, &lt;br /&gt;
&lt;br /&gt;
в общем тема такая, я использую CListViewCtrl в виртуальном режиме (LVS_OWNERDATA), а так же сам отрисовываю (CCustomDraw).&lt;br /&gt;
&lt;br /&gt;
При инициализации листа я вызываю у него SetItemCountEx, устанавливая количество строк, которое соответствует моим данным в векторе.&lt;br /&gt;
Вопрос собственно такой: есть ли смысл передавать листу все данные по запросу LVN_GETDISPINFO, если можно все это дело отрисовать в custom draw?&lt;/div&gt;
				
		</description>
		
		<category>atl</category>
		<pubDate>Fri, 16 May 2014 14:40:01 GMT</pubDate>
		
			<author>Hayabusa &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>11</slash:comments>
		
	</item>

	<item>
		<title>CThreadPool</title>
		<link>http://rsdn.org/Forum/atl/5575100.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/atl/5575100</guid>
		<comments>http://rsdn.org/Forum/atl/5575100</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=5575100</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/5575100</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=5575100</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Всем привет,&lt;br /&gt;
&lt;br /&gt;
Решил вот потеснее познакомиться с многопоточной обработкой запросов от клиентов на сервере &lt;img border='0' width='15' height='15' src='//rsdn.org/Forum/images/smile.gif' /&gt;&lt;br /&gt;
До этого не имел дела с пулом потоков никогда.&lt;br /&gt;
Очень активно использую ATL, по этому мой взгляд естественно упал на CThreadPool.&lt;br /&gt;
&lt;br /&gt;
Пробежавшись немного по форуму выяснил, что есть у него вроде проблема с shutdown, мол очередь запросов не обрывается а выполняется до конца. Сам не проверял еще, все только из отрывочных постов по форуму.&lt;br /&gt;
Использую студию VS9.0, может в atl более поздних версий эта проблема уже была решена?&lt;br /&gt;
Может еще есть какие-либо реализованные пулы, на которые стоит обратить свой взор? boost не предлагать )&lt;/div&gt;
				
		</description>
		
		<category>atl</category>
		<pubDate>Thu, 24 Apr 2014 08:56:28 GMT</pubDate>
		
		
			<slash:comments>8</slash:comments>
		
	</item>

	<item>
		<title>WTL 9.0</title>
		<link>http://rsdn.org/Forum/atl/5469245.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/atl/5469245</guid>
		<comments>http://rsdn.org/Forum/atl/5469245</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=5469245</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/5469245</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=5469245</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;&lt;a class="m" href="http://sourceforge.net/projects/wtl/" target="_blank"&gt;http://sourceforge.net/projects/wtl/&lt;/a&gt;&lt;/div&gt;
				
		</description>
		
		<category>atl</category>
		<pubDate>Fri, 14 Feb 2014 05:51:52 GMT</pubDate>
		
			<author>PPA &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>13</slash:comments>
		
	</item>

	<item>
		<title>CAtlArray</title>
		<link>http://rsdn.org/Forum/atl/5440767.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/atl/5440767</guid>
		<comments>http://rsdn.org/Forum/atl/5440767</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=5440767</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/5440767</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=5440767</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;MSVC 2010&lt;br /&gt;
Класс CAtlArray.&lt;br /&gt;
Метод SetAtGrow и т.п.&lt;br /&gt;
Для увеличения размера вызывается SetCount.&lt;br /&gt;
SetCount вызывает GrowBuffer.&lt;br /&gt;
GrowBuffer создает новый буфер, и для переноса данных из старого буфера в новый вызывает RelocateElements из класса Traits, указанного вторым аргументом CAtlArray.&lt;br /&gt;
Реализация RelocateElements по-умолчанию для произвольных типов выполняет memmove, т.е. побитное копирование.&lt;br /&gt;
(traits специфицируется для некоторых типов &amp;mdash; стринг, вариант, guid и встроенные целочисленные типы, но там переопределяется только хеширование и сравнение).&lt;br /&gt;
&lt;br /&gt;
Получается, CAtlArray "из коробки" непригоден для использования и требует допиливания?&lt;/div&gt;
				
		</description>
		
		<category>atl</category>
		<pubDate>Thu, 23 Jan 2014 08:12:11 GMT</pubDate>
		
			<author>rus blood &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>3</slash:comments>
		
	</item>

	<item>
		<title>Подключение удаленному DCOM компоненту</title>
		<link>http://rsdn.org/Forum/atl/5437502.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/atl/5437502</guid>
		<comments>http://rsdn.org/Forum/atl/5437502</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=5437502</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/5437502</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=5437502</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Добрый день.&lt;br /&gt;
Посдкажите как правильно подключится к уже созданному удаленному серверу(EXE). &lt;br /&gt;
Пробовал через FileMoniker и BindToObject, но он порождает новую копию сервера, хотя и возвращает указатель на запрашиваемую, но копия остается запущена.&lt;br /&gt;
REGCLS_MULTIPLEUSE использовать не могу т.к. должно поддерживтся запуск нескольких компонент различных по имени( различаю по FileMoniker).&lt;/div&gt;
				
		</description>
		
		<category>atl</category>
		<pubDate>Tue, 21 Jan 2014 07:49:11 GMT</pubDate>
		
			<author>sbrych &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>1</slash:comments>
		
	</item>

	<item>
		<title>Как организовать регистрацию Callback-ов из ActiveX (ATL) компонента</title>
		<link>http://rsdn.org/Forum/atl/5410545.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/atl/5410545</guid>
		<comments>http://rsdn.org/Forum/atl/5410545</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=5410545</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/5410545</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=5410545</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;- Имею DLL-ку, которая написана на Си (обвязка к драйверу Bluetooth) и которая имеет обработку событий из драйвера посредством установки своих Callback-ов.&lt;br /&gt;
— Имею ActiveX компонент-оболочку к этой DLL-ке, созданный в VS2008 посредством технологии ATL.&lt;br /&gt;
Все замечательно — методы в DLL работают, свойства изменяются.&lt;br /&gt;
Одно НО.&lt;br /&gt;
Есть пара событий, которые генерит DLLка. &lt;br /&gt;
К ним можно прицепиться с помощью стандартных Си-шных callback-функций (в данном случае — даже без аргументов, чисто уведомления).&lt;br /&gt;
&lt;br /&gt;
Написал статическую ф-ю без аргументов, которую отдал в DLL-ку в качестве Callback-a в конструкторе компонента.&lt;br /&gt;
Сжевала.&lt;br /&gt;
Столкнулся с проблемой: событие внутри самого АХ-компонента генерируется вызовом его функции-внутреннего публичного метода FireMyNotyfyEvent().&lt;br /&gt;
Облазил весь ATL-код и не нашел переменной, через которую можно добраться до метода класса извне .&lt;br /&gt;
&lt;br /&gt;
Попробовал создать статическую переменную-указатель на экземпляр эьлго класса и инициализировать ее в конструкторе AX компонента. И потом подергать через нее медод генерации события в компоненте.&lt;br /&gt;
Облом — метод вызывается, но трапится на получении доступа к локальным данным.&lt;br /&gt;
Если тот же метод FireMyNotyfyEvent() вызывать из другого метода класса компонента, все проходит нормально — событие генерится.&lt;br /&gt;
Значит — проблема в правильном вызове метода класса компонента FireMyNotyfyEvent() из внешней статической callback-функции.&lt;br /&gt;
&lt;br /&gt;
И сама статическая функция и ее прототип в DLL имеют одинаковый Си-шный формат соглашения о вызове функций. Тут подвоха со стеком нет.&lt;br /&gt;
Но указатель на класс я наверное получаю неверный, или недопустимый для доступа к методу класса.&lt;br /&gt;
&lt;br /&gt;
Как корректно дернуть метод класса АХ из внешней статической функции?&lt;/div&gt;
				
		</description>
		
		<category>atl</category>
		<pubDate>Wed, 25 Dec 2013 11:42:59 GMT</pubDate>
		
			<author>anpis &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>4</slash:comments>
		
	</item>

	<item>
		<title>Остановка двух потоков одним эвентом</title>
		<link>http://rsdn.org/Forum/atl/5406050.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/atl/5406050</guid>
		<comments>http://rsdn.org/Forum/atl/5406050</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=5406050</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/5406050</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=5406050</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Запостил сюда т.к. использую класс CEvent из ATL.&lt;br /&gt;
&lt;br /&gt;
В общем всю жизнь юзал такую конструкцию, как:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;CEvent m_evStop;

&lt;span class='com'&gt;// далее в конструкторе&lt;/span&gt;
m_evStop(FALSE&lt;span class='com'&gt;/*init own*/&lt;/span&gt;, FALSE&lt;span class='com'&gt;/*manual reset*/&lt;/span&gt;)

&lt;span class='com'&gt;// в двух потоках ждем этот эвент&lt;/span&gt;
&lt;span class='kw'&gt;while&lt;/span&gt; (WAIT_OBJECT_0 != ::WaitForSingleObject(m_evStop, 10)) {&lt;span class='com'&gt;/*делаем что-то крайне бесполезное*/&lt;/span&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Каково же было мое удивление, что эвент оказывается сбрасывается функцией WaitForSingleObject и второй поток я рублю с помощью TerminateThread, узнал об этом как добавил логирование..&lt;br /&gt;
&lt;br /&gt;
Как же одним эвентом остановить два потока? Итц поссибл?&lt;/div&gt;
				
		</description>
		
		<category>atl</category>
		<pubDate>Sat, 21 Dec 2013 22:43:19 GMT</pubDate>
		
			<author>Hayabusa &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>6</slash:comments>
		
	</item>
</channel>
</rss>
