<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.2" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>Gus What?!</title>
	<link>http://www.gusverdun.com</link>
	<description>On AIM, the Web, and software development.</description>
	<pubDate>Mon, 28 Apr 2008 11:45:52 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.2</generator>
	<language>en</language>
			<item>
		<title>Using the Send Calendar Feature in RX-Plugin</title>
		<link>http://www.gusverdun.com/2008/04/28/using-the-send-calendar-feature-in-rx-plugin/</link>
		<comments>http://www.gusverdun.com/2008/04/28/using-the-send-calendar-feature-in-rx-plugin/#comments</comments>
		<pubDate>Mon, 28 Apr 2008 11:45:52 +0000</pubDate>
		<dc:creator>Gus</dc:creator>
		
		<category><![CDATA[Plugin]]></category>

		<category><![CDATA[RX-Plugin]]></category>

		<category><![CDATA[/cal]]></category>

		<category><![CDATA[calendar]]></category>

		<guid isPermaLink="false">http://www.gusverdun.com/2008/04/28/using-the-send-calendar-feature-in-rx-plugin/</guid>
		<description><![CDATA[Thanks for all the feedback on this new feature. The /cal (send calendar) command accepts optional numeric parameters for month [1-12] and year. To send a calendar for another month of the current year, just add the month&#8217;s number after &#8220;/cal &#8221;. Here are some examples:
/cal 7
Sends the July calendar of the current year.
/cal 7 [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Using the Send Calendar Feature in RX-Plugin", url: "http://www.gusverdun.com/2008/04/28/using-the-send-calendar-feature-in-rx-plugin/" });</script>]]></description>
			<content:encoded><![CDATA[<p>Thanks for all the feedback on this new feature. The <code>/cal</code> (send calendar) command accepts optional numeric parameters for month [1-12] and year. To send a calendar for another month of the current year, just add the month&#8217;s number after &ldquo;<code>/cal </code>&rdquo;. Here are some examples:</p>
<p><code>/cal 7</code></p>
<p>Sends the July calendar of the current year.</p>
<p><code>/cal 7 2009</code></p>
<p>Sends the July 2009 calendar. You must specify the month if you want to specify the year.</p>
<p><a href="http://sharethis.com/item?&wp=2.3.2&amp;publisher=e66b9e1d-d8d2-411a-94cd-e915fff98226&amp;title=Using+the+Send+Calendar+Feature+in+RX-Plugin&amp;url=http%3A%2F%2Fwww.gusverdun.com%2F2008%2F04%2F28%2Fusing-the-send-calendar-feature-in-rx-plugin%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.gusverdun.com/2008/04/28/using-the-send-calendar-feature-in-rx-plugin/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Can you say Hotkeys?</title>
		<link>http://www.gusverdun.com/2008/04/23/can-you-say-hotkeys/</link>
		<comments>http://www.gusverdun.com/2008/04/23/can-you-say-hotkeys/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 03:11:45 +0000</pubDate>
		<dc:creator>Gus</dc:creator>
		
		<category><![CDATA[IM Tweaks]]></category>

		<category><![CDATA[Plugin]]></category>

		<guid isPermaLink="false">http://www.gusverdun.com/2008/04/23/can-you-say-hotkeys/</guid>
		<description><![CDATA[For the second post of the night, I am announcing the release of an update to Gus Verdun&#8217;s IM Tweaks. This version adds a new feature called Hotkeys which lets you define keyboard shortcuts to the IM and Buddy List windows that you can use within any other application. 
Just press the hotkey for the [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Can you say Hotkeys?", url: "http://www.gusverdun.com/2008/04/23/can-you-say-hotkeys/" });</script>]]></description>
			<content:encoded><![CDATA[<p>For the second post of the night, I am announcing the release of an update to <a href="http://www.gusverdun.com/imtweaks">Gus Verdun&#8217;s IM Tweaks</a>. This version adds a new feature called <strong>Hotkeys</strong> which lets you define keyboard shortcuts to the IM and Buddy List windows that you can use within any other application. </p>
<p>Just press the hotkey for the IM windows (defaults to WIN+CTRL+SHIFT+UP ARROW) to set focus to the last IM window. Press it again, and it will close all IM windows. You can also press the hotkey for the Buddy List window (WIN+CTRL+SHIFT+DOWN ARROW) to switch focus to that window.</p>
<p>See the <a href="http://www.gusverdun.com/imtweaks">IM Tweaks</a> page for more details. </p>
<p>Enjoy.</p>
<p><a href="http://sharethis.com/item?&wp=2.3.2&amp;publisher=e66b9e1d-d8d2-411a-94cd-e915fff98226&amp;title=Can+you+say+Hotkeys%3F&amp;url=http%3A%2F%2Fwww.gusverdun.com%2F2008%2F04%2F23%2Fcan-you-say-hotkeys%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.gusverdun.com/2008/04/23/can-you-say-hotkeys/feed/</wfw:commentRss>
		</item>
		<item>
		<title>&#8220;Talk Dates&#8221; with your Buddies using the latest RX-Plugin (1.0.11)</title>
		<link>http://www.gusverdun.com/2008/04/23/talk-dates-with-your-buddies-with-the-latest-rx-plugin-1011/</link>
		<comments>http://www.gusverdun.com/2008/04/23/talk-dates-with-your-buddies-with-the-latest-rx-plugin-1011/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 01:39:43 +0000</pubDate>
		<dc:creator>Gus</dc:creator>
		
		<category><![CDATA[Plugin]]></category>

		<category><![CDATA[RX-Plugin]]></category>

		<category><![CDATA[calendar]]></category>

		<guid isPermaLink="false">http://www.gusverdun.com/2008/04/23/talk-dates-with-your-buddies-with-the-latest-rx-plugin-1011/</guid>
		<description><![CDATA[I just released an update of Gus Verdun&#8217;s RX-Plugin. This version fixes a number of bugs and also adds a new feature that lets you send a calendar:

Give it a try.
Enjoy.
<script type="text/javascript">SHARETHIS.addEntry({ title: "&#8220;Talk Dates&#8221; with your Buddies using the latest RX-Plugin (1.0.11)", url: "http://www.gusverdun.com/2008/04/23/talk-dates-with-your-buddies-with-the-latest-rx-plugin-1011/" });</script>]]></description>
			<content:encoded><![CDATA[<p>I just released an update of <a href="http://www.gusverdun.com/rxplugin">Gus Verdun&#8217;s RX-Plugin</a>. This version fixes a number of bugs and also adds a new feature that lets you send a calendar:</p>
<div style="text-align:center;"><img src='http://www.gusverdun.com/blog/wp-content/uploads/2008/04/calcommand.gif' alt='/cal command' /></div>
<p>Give it a try.</p>
<p>Enjoy.</p>
<p><a href="http://sharethis.com/item?&wp=2.3.2&amp;publisher=e66b9e1d-d8d2-411a-94cd-e915fff98226&amp;title=%26%238220%3BTalk+Dates%26%238221%3B+with+your+Buddies+using+the+latest+RX-Plugin+%281.0.11%29&amp;url=http%3A%2F%2Fwww.gusverdun.com%2F2008%2F04%2F23%2Ftalk-dates-with-your-buddies-with-the-latest-rx-plugin-1011%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.gusverdun.com/2008/04/23/talk-dates-with-your-buddies-with-the-latest-rx-plugin-1011/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Open AIM Signon Problem</title>
		<link>http://www.gusverdun.com/2008/03/11/open-aim-signon-problem/</link>
		<comments>http://www.gusverdun.com/2008/03/11/open-aim-signon-problem/#comments</comments>
		<pubDate>Tue, 11 Mar 2008 18:37:07 +0000</pubDate>
		<dc:creator>Gus</dc:creator>
		
		<category><![CDATA[AIM]]></category>

		<category><![CDATA[AIM SDK]]></category>

		<category><![CDATA[clientLogin]]></category>

		<category><![CDATA[Open AIM]]></category>

		<category><![CDATA[OpenAuth]]></category>

		<category><![CDATA[OSCAR]]></category>

		<category><![CDATA[SDK]]></category>

		<category><![CDATA[startOSCARSession]]></category>

		<guid isPermaLink="false">http://www.gusverdun.com/2008/03/11/open-aim-signon-problem/</guid>
		<description><![CDATA[As noted here, you need to make sure your system clock is fairly accurate when using the Open AIM SDK 1.6.7 in a client. This will be fixed in the next release.
Incidentally, the APIs we use for signon are clientLogin and startOSCARSession which are documented in the OSCAR protocol specifications.
<script type="text/javascript">SHARETHIS.addEntry({ title: "Open AIM Signon Problem", url: "http://www.gusverdun.com/2008/03/11/open-aim-signon-problem/" });</script>]]></description>
			<content:encoded><![CDATA[<p>As noted <a href="http://dev.aol.com/node/995#comment-1592">here</a>, you need to make sure your system clock is fairly accurate when using the <a href="http://dev.aol.com/aim/downloads">Open AIM SDK 1.6.7</a> in a client. This will be fixed in the next release.</p>
<p>Incidentally, the APIs we use for signon are <a href="http://dev.aol.com/authentication_for_clients#clientLogin">clientLogin</a> and <a href="http://dev.aol.com/aim/web/serverapi_reference#startOSCARSession">startOSCARSession</a> which are documented in the <a href="http://dev.aol.com/aim/oscar/">OSCAR protocol specifications</a>.</p>
<p><a href="http://sharethis.com/item?&wp=2.3.2&amp;publisher=e66b9e1d-d8d2-411a-94cd-e915fff98226&amp;title=Open+AIM+Signon+Problem&amp;url=http%3A%2F%2Fwww.gusverdun.com%2F2008%2F03%2F11%2Fopen-aim-signon-problem%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.gusverdun.com/2008/03/11/open-aim-signon-problem/feed/</wfw:commentRss>
		</item>
		<item>
		<title>AIM SDK 1.6.7 Q&#038;A Volume I</title>
		<link>http://www.gusverdun.com/2008/03/10/aim-sdk-167-qa-volume-i/</link>
		<comments>http://www.gusverdun.com/2008/03/10/aim-sdk-167-qa-volume-i/#comments</comments>
		<pubDate>Tue, 11 Mar 2008 02:13:56 +0000</pubDate>
		<dc:creator>Gus</dc:creator>
		
		<category><![CDATA[AIM]]></category>

		<category><![CDATA[AIM Q&amp;A]]></category>

		<category><![CDATA[AIM SDK]]></category>

		<category><![CDATA[Open AIM]]></category>

		<category><![CDATA[Q&amp;A]]></category>

		<category><![CDATA[SDK]]></category>

		<guid isPermaLink="false">http://www.gusverdun.com/2008/03/10/aim-sdk-167-qa-volume-i/</guid>
		<description><![CDATA[A number of you are trying out the recently released AIM SDK 1.6.7. I thought it would be a good idea to answer some of the early questions. So here they are in my usual Q&#038;A style&#8230;
Q: What SDK files do I need to run an Open AIM client or bot?
A: You need to copy [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "AIM SDK 1.6.7 Q&#038;A Volume I", url: "http://www.gusverdun.com/2008/03/10/aim-sdk-167-qa-volume-i/" });</script>]]></description>
			<content:encoded><![CDATA[<p>A number of you are trying out the recently released <a href="http://dev.aol.com/aim/downloads">AIM SDK 1.6.7</a>. I thought it would be a good idea to answer some of the <a href="http://dev.aol.com/node/1021">early</a> <a href="http://dev.aol.com/node/1018">questions</a>. So here they are in my usual Q&#038;A style&#8230;</p>
<p>Q: <strong>What SDK files do I need to run an Open AIM client or bot?</strong><br />
A: You need to copy some of the DLL files from the dist\release folder into your application&#8217;s folder. You can omit the jg*.dll files if you don&#8217;t need to support talk (aka voice) sessions with legacy AIM clients like AOL 9.x and AIM 5.9. You can also omit the <a href="http://www.sipfoundry.org/">sipxtapi.dll</a> if you don&#8217;t need to support the newer SIP based Audio/Video sessions in AIM 6.x. You only need the accjwrap.dll and the accjwrap.jar files if your bot or client is written in Java. All other DLLs are required.</p>
<p>Q: <strong>What are all these new DLLs for?</strong><br />
A: We added support for SSL based encryption to Open AIM clients, which is based on <a href="http://www.mozilla.org/projects/security/pki/nss/">NSS</a> and <a href="http://www.mozilla.org/projects/nspr/">NSPR</a> from <a href="http://www.mozilla.org/">Mozilla</a>. We also updated the audio/video stacks for full multimedia support in <a href="http://dev.aol.com/aim">Open AIM</a>.</p>
<p>Q: <strong>How do I enable SSL based encryption in my bot or client?</strong><br />
A: You can enable this via the boolean preference named &#8220;aimcc.connect.secure&#8221;. The default is false.</p>
<p>Q: <strong>What does SSL based encryption protect?</strong><br />
A: This encrypts all regular IM traffic between the client and the AIM host. It will not encrypt direct IMs, picture sharing sessions, A/V sessions, file transfers, buddy art retrievals and uploads, or alerts. Note: for end to end security your buddy also needs to be running a client that uses SSL encryption, like <a href="http://download.aim.com/client/65">AIM 6.5.9.1</a>.</p>
<p>If I did not answer your question, feel free to ask in a comment or post it in one of the <a href="http://dev.aol.com/aim/forums">forums</a>.</p>
<p><a href="http://sharethis.com/item?&wp=2.3.2&amp;publisher=e66b9e1d-d8d2-411a-94cd-e915fff98226&amp;title=AIM+SDK+1.6.7+Q%26%23038%3BA+Volume+I&amp;url=http%3A%2F%2Fwww.gusverdun.com%2F2008%2F03%2F10%2Faim-sdk-167-qa-volume-i%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.gusverdun.com/2008/03/10/aim-sdk-167-qa-volume-i/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Open AIM 2.0</title>
		<link>http://www.gusverdun.com/2008/03/06/openaim-20/</link>
		<comments>http://www.gusverdun.com/2008/03/06/openaim-20/#comments</comments>
		<pubDate>Thu, 06 Mar 2008 12:23:56 +0000</pubDate>
		<dc:creator>Gus</dc:creator>
		
		<category><![CDATA[AIM]]></category>

		<category><![CDATA[AIM SDK]]></category>

		<category><![CDATA[Software Development]]></category>

		<category><![CDATA[AOL]]></category>

		<category><![CDATA[Open AIM]]></category>

		<category><![CDATA[SDK]]></category>

		<guid isPermaLink="false">http://www.gusverdun.com/2008/03/06/openaim-20/</guid>
		<description><![CDATA[With AOL&#8217;s recent announcement on Open AIM 2.0 now live and getting lots of great attention, I thought I should write a quick post on it. This is truly exciting news. We are dramatically expanding our community when we open things up like this. So with that, I want to say &#8220;Welcome&#8221; to all the [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Open AIM 2.0", url: "http://www.gusverdun.com/2008/03/06/openaim-20/" });</script>]]></description>
			<content:encoded><![CDATA[<p><img src='http://www.gusverdun.com/blog/wp-content/uploads/2008/03/openaim.gif' alt='Open AIM' style='float:left; padding-top:6px; padding-right:6px;'/>With AOL&#8217;s recent announcement on <a href="http://dev.aol.com/aim">Open AIM 2.0</a> now live and <a href="http://www.techcrunch.com/2008/03/05/aol-gets-it-right-with-open-aim-20-embraces-meebo-and-ebuddy/">getting</a> <a href="http://www.internetnews.com/dev-news/article.php/3732331/AOL+Opens+AIM+for+Open+Source.htm">lots</a> <a href="http://www.pcmag.com/article2/0,2817,2273499,00.asp">of</a> <a href="http://www.instantmessagingplanet.com/public/article.php/3732361">great</a> <a href="http://blog.meebo.com/?p=418">attention</a>, I thought I should write a quick post on it. This is truly <a href="http://corp.aol.com/press_releases/2008/03/aol-announces-open-aim-20-developer-program">exciting news</a>. We are dramatically expanding our community when we open things up like this. So with that, I want to say &#8220;Welcome&#8221; to all the great developers out there. Here is this incredible AIM network that you can now use and build on.</p>
<p>I have actually been a part of the AIM core team for a number of months now, so I am available to help answer questions on Open AIM. I can now claim to have <a href="http://dev.aol.com/authentication_for_clients">written</a> <a href="http://practicalid.blogspot.com/2008/03/authentication-for-clients.html">code</a> in imapp.dll, acccore.dll, coolcoreXX.dll, and xprtX.dll. Lastly, <a href="http://dev.aol.com/aim#DeveloperSpotlight">this</a> <a href="http://www.gregsmind.com/">guy</a> sits next to me.</p>
<p>There are more great things to come.</p>
<p><a href="http://sharethis.com/item?&wp=2.3.2&amp;publisher=e66b9e1d-d8d2-411a-94cd-e915fff98226&amp;title=Open+AIM+2.0&amp;url=http%3A%2F%2Fwww.gusverdun.com%2F2008%2F03%2F06%2Fopenaim-20%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.gusverdun.com/2008/03/06/openaim-20/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Share and discuss your RX-Plugin Rules and more</title>
		<link>http://www.gusverdun.com/2007/12/30/share-and-discuss-your-rx-plugin-rules-and-more/</link>
		<comments>http://www.gusverdun.com/2007/12/30/share-and-discuss-your-rx-plugin-rules-and-more/#comments</comments>
		<pubDate>Mon, 31 Dec 2007 03:03:19 +0000</pubDate>
		<dc:creator>Gus</dc:creator>
		
		<category><![CDATA[IM Tweaks]]></category>

		<category><![CDATA[RX-Plugin]]></category>

		<category><![CDATA[RX-Plugin Rules]]></category>

		<guid isPermaLink="false">http://www.gusverdun.com/2007/12/30/share-and-discuss-your-rx-plugin-rules-and-more/</guid>
		<description><![CDATA[A fellow &#8220;RXer&#8221; has been kind enough to create a forum for the sharing and discussion of RX-Plugin rules. You can access it here.
There is also another forum for the discussion of my IM Tweaks plugin which can be accessed here.
So far there is not much information but that should change soon. I will do [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Share and discuss your RX-Plugin Rules and more", url: "http://www.gusverdun.com/2007/12/30/share-and-discuss-your-rx-plugin-rules-and-more/" });</script>]]></description>
			<content:encoded><![CDATA[<p>A fellow &#8220;RXer&#8221; has been kind enough to create a forum for the sharing and discussion of <a href="/rxplugin">RX-Plugin</a> rules. You can access it <a href="http://z15.invisionfree.com/AIM_Plugin_Board/index.php?showforum=1">here</a>.</p>
<p>There is also another forum for the discussion of my <a href="/imtweaks">IM Tweaks</a> plugin which can be accessed <a href="http://z15.invisionfree.com/AIM_Plugin_Board/index.php?showforum=2">here</a>.</p>
<p>So far there is not much information but that should change soon. I will do my best to add to the discussions from time to time.</p>
<p><a href="http://sharethis.com/item?&wp=2.3.2&amp;publisher=e66b9e1d-d8d2-411a-94cd-e915fff98226&amp;title=Share+and+discuss+your+RX-Plugin+Rules+and+more&amp;url=http%3A%2F%2Fwww.gusverdun.com%2F2007%2F12%2F30%2Fshare-and-discuss-your-rx-plugin-rules-and-more%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.gusverdun.com/2007/12/30/share-and-discuss-your-rx-plugin-rules-and-more/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Open AIM: Modeless Window Support for Plugins</title>
		<link>http://www.gusverdun.com/2007/12/30/open-aim-modeless-window-support-for-plugins/</link>
		<comments>http://www.gusverdun.com/2007/12/30/open-aim-modeless-window-support-for-plugins/#comments</comments>
		<pubDate>Mon, 31 Dec 2007 02:49:08 +0000</pubDate>
		<dc:creator>Gus</dc:creator>
		
		<category><![CDATA[AIM SDK]]></category>

		<category><![CDATA[Open AIM]]></category>

		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.gusverdun.com/2007/12/30/open-aim-modeless-window-support-for-plugins/</guid>
		<description><![CDATA[Have you ever wondered why tab and other navigation keys don&#8217;t work in some of the modeless dialog windows created by plugins? The reason for this is because Windows requires applications to call IsDialogMessage() for the currently active modeless window in order to translate the keyboard messages into dialog navigation commands. 
This is relatively easy [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Open AIM: Modeless Window Support for Plugins", url: "http://www.gusverdun.com/2007/12/30/open-aim-modeless-window-support-for-plugins/" });</script>]]></description>
			<content:encoded><![CDATA[<p>Have you ever wondered why tab and other navigation keys don&#8217;t work in some of the modeless dialog windows created by plugins? The reason for this is because Windows requires applications to call <code>IsDialogMessage()</code> for the currently active modeless window in order to translate the keyboard messages into dialog navigation commands. </p>
<p>This is relatively easy to implement in a standalone application since the code is all compiled and built together. However, in a plugin world you have to create an API to support this since it requires the cooperation between the hosting application, that owns the message pump, and the plugins, that know which modeless window is currently active.</p>
<p>The Open AIM SDK added support for registering the active dialog back in version 1.3 via a property called <code>IAccPluginInfoProp_Windows</code>. This property accepts an array of UINTs that are the window references. In the Windows environment you only have to provide a one-element array with the window handle of the currently active modeless dialog window or an empty array.</p>
<p>Open AIM clients need to listen for changes to <code>IAccPluginInfoProp_Windows</code> and keep track of the currently active dialog window in any plugin. On every window message, Open AIM clients should call <code>IsDialogMessage()</code> if it has at least one active modeless dialog window registered. If the message is handled, then the client is done otherwise the client can continue on with its own processing of the message. If all plugins are working correctly, there should only be one active modeless dialog window at a time even if there is more than one open.</p>
<p>I created a handy little class that you can use to make this easy to manage in your plugins. Here is a part of the header (<a href="/extras/OpenAIMPluginWindowReg.zip">Download the full source here</a>):</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
</pre></td><td class="code"><pre class="cpp"><span style="color: #0000ff;">class</span> COpenAIMPluginWindowReg
<span style="color: #000000;">&#123;</span>
<span style="color: #0000ff;">public</span>:
    <span style="color: #ff0000;">// Call this once from the first instance of your plugin and</span>
    <span style="color: #ff0000;">// a second time, with a null pointer, when the last instance is shutdown.</span>
    <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> SetPluginInfoPtr<span style="color: #000000;">&#40;</span>IAccPluginInfo *pPluginInfo<span style="color: #000000;">&#41;</span>;
&nbsp;
    <span style="color: #ff0000;">// Call this from WM_ACTIVATE</span>
    <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> OnActivate<span style="color: #000000;">&#40;</span>HWND hWnd, WPARAM wParam<span style="color: #000000;">&#41;</span>;
&nbsp;
<span style="color: #0000ff;">private</span>:
    <span style="color: #0000ff;">static</span> CComPtr&lt;IAccPluginInfo&gt;  s_spPluginInfo;
&nbsp;
<span style="color: #000000;">&#125;</span>;</pre></td></tr></table></div>

<p>As you can see, this class has just two static methods and thus very simply to use. You call <code><strong>COpenAIMPluginWindowReg::SetPluginInfoPtr</strong>(pPluginInfo);</code> from the first instance of your plugin. I typically call this from the <code>IAccPlugin::Init()</code> method and keep track if the number of instances of my plugin that are running. You must also call <code><strong>COpenAIMPluginWindowReg::SetPluginInfoPtr</strong>(NULL);</code> when the last instance of your plugin is shutdown.</p>
<p>Then, in every modeless dialog window you create, add a handler for the WM_ACTIVATE message and call:</p>

<div class="wp_syntax"><div class="code"><pre class="cpp">    COpenAIMPluginWindowReg::<span style="color: #00eeff;">OnActivate</span><span style="color: #000000;">&#40;</span>hWnd, wParam<span style="color: #000000;">&#41;</span>;</pre></div></div>

<p>The OnActivate static method takes care of maintaining the IAccPluginInfoProp_Windows property for your plugin as the window is activated and deactivated.</p>
<p>I have released this source under an MIT style license. See the source files for more information. Again you can <a href="/extras/OpenAIMPluginWindowReg.zip">download the full source here</a>.</p>
<p>Questions? Comments?</p>
<p><a href="http://sharethis.com/item?&wp=2.3.2&amp;publisher=e66b9e1d-d8d2-411a-94cd-e915fff98226&amp;title=Open+AIM%3A+Modeless+Window+Support+for+Plugins&amp;url=http%3A%2F%2Fwww.gusverdun.com%2F2007%2F12%2F30%2Fopen-aim-modeless-window-support-for-plugins%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.gusverdun.com/2007/12/30/open-aim-modeless-window-support-for-plugins/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Open AIM: How to register a plugin command</title>
		<link>http://www.gusverdun.com/2007/12/17/open-aim-how-to-register-a-plugin-command/</link>
		<comments>http://www.gusverdun.com/2007/12/17/open-aim-how-to-register-a-plugin-command/#comments</comments>
		<pubDate>Mon, 17 Dec 2007 13:48:15 +0000</pubDate>
		<dc:creator>Gus</dc:creator>
		
		<category><![CDATA[AIM Q&amp;A]]></category>

		<category><![CDATA[AIM SDK]]></category>

		<category><![CDATA[Open AIM]]></category>

		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.gusverdun.com/2007/12/17/open-aim-how-to-register-a-plugin-command/</guid>
		<description><![CDATA[Hello again. I am back. Today I am starting a new series of posts on Open AIM. For this first post, I will start by introducing a handy little function similar to the one I wrote for my plug-ins that makes it easy to register commands that your plug-in will handle.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// The following code is [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Open AIM: How to register a plugin command", url: "http://www.gusverdun.com/2007/12/17/open-aim-how-to-register-a-plugin-command/" });</script>]]></description>
			<content:encoded><![CDATA[<p>Hello again. I am back. Today I am starting a new series of posts on Open AIM. For this first post, I will start by introducing a handy little function similar to the one I wrote for my plug-ins that makes it easy to register commands that your plug-in will handle.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
</pre></td><td class="code"><pre class="cpp"><span style="color: #ff0000;">// The following code is public domain. Written by Gus Verdun</span>
<span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span> RegisterPluginCommand<span style="color: #000000;">&#40;</span>IAccPluginInfo * pluginInfo, 
                                               <span style="color: #0000ff;">int</span> id, UINT flags, 
                                               LPCWSTR pCommand<span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
    CComPtr &lt;IAccCommand&gt; spCommand;
    pluginInfo-&gt;AddCommand<span style="color: #000000;">&#40;</span>id, &amp;spCommand<span style="color: #000000;">&#41;</span>;
    <span style="color: #0000ff;">if</span> <span style="color: #000000;">&#40;</span>spCommand<span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
        CComBSTR str<span style="color: #000000;">&#40;</span>pCommand<span style="color: #000000;">&#41;</span>;
        put_Text<span style="color: #000000;">&#40;</span>spCommand, str<span style="color: #000000;">&#41;</span>;
        put_Flags<span style="color: #000000;">&#40;</span>spCommand, <span style="color: #000000;">&#40;</span>AccCommandFlags<span style="color: #000000;">&#41;</span>flags<span style="color: #000000;">&#41;</span>;
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p>I normally call this function from the <code>IAccPlugin::Init</code> method, but you can call it at any time you want to add a command. The first parameter is the <code>IAccPluginInfo</code> interface pointer that is passed to you on the <code>Init()</code> call. The second parameter is the command identifier that is assigned by you and handled in your plugin&#8217;s <code>IAccCommandTarget</code> methods. The third parameter, flags, are the <code>AccCommandFlags</code> that let you indicate where you want this command to appear in the UI. Finally, the fourth parameter is the actual text that will be displayed in the client&#8217;s UI.</p>
<p>Here is a simple example to define a command that will show only in the plug-in settings page.</p>

<div class="wp_syntax"><div class="code"><pre class="cpp">RegisterPluginCommand<span style="color: #000000;">&#40;</span>pPluginInfo, <span style="color: #0000dd;">-1</span>, 
     AccCommandFlags_PreferencesUi, 
     OLESTR<span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Settings...&quot;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#41;</span>;</pre></div></div>

<p>For localization purposes, you can easily change this function to load the command string from a resource. I will leave that as an exercise for you to try.</p>
<p>Hope this helps. Comments? Questions?</p>
<p><a href="http://sharethis.com/item?&wp=2.3.2&amp;publisher=e66b9e1d-d8d2-411a-94cd-e915fff98226&amp;title=Open+AIM%3A+How+to+register+a+plugin+command&amp;url=http%3A%2F%2Fwww.gusverdun.com%2F2007%2F12%2F17%2Fopen-aim-how-to-register-a-plugin-command%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.gusverdun.com/2007/12/17/open-aim-how-to-register-a-plugin-command/feed/</wfw:commentRss>
		</item>
		<item>
		<title>IM Tweaks 0.8.1</title>
		<link>http://www.gusverdun.com/2007/10/13/im-tweaks-108/</link>
		<comments>http://www.gusverdun.com/2007/10/13/im-tweaks-108/#comments</comments>
		<pubDate>Sat, 13 Oct 2007 12:33:50 +0000</pubDate>
		<dc:creator>Gus</dc:creator>
		
		<category><![CDATA[IM Tweaks]]></category>

		<category><![CDATA[Plugin]]></category>

		<category><![CDATA[Plugin Q&amp;A]]></category>

		<guid isPermaLink="false">http://www.gusverdun.com/2007/10/13/im-tweaks-108/</guid>
		<description><![CDATA[I updated this plug-in yesterday. This version fixes the problem with AIM 6.5 where invisibility was not being set properly at first sign in. I also added a new about window that you can access from AIM 6.5&#8217;s Help menu. The about window has a way to send feedback.
Be sure you sign-out and exit from [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "IM Tweaks 0.8.1", url: "http://www.gusverdun.com/2007/10/13/im-tweaks-108/" });</script>]]></description>
			<content:encoded><![CDATA[<p>I updated this plug-in yesterday. This version fixes the problem with AIM 6.5 where invisibility was not being set properly at first sign in. I also added a new about window that you can access from AIM 6.5&#8217;s Help menu. The about window has a way to send feedback.</p>
<p><strong>Be sure you sign-out and exit from your IM client before installing this plug-in.</strong></p>
<p>Let me know if you have any questions. I will post my answers in the comments.</p>
<p><a href="http://sharethis.com/item?&wp=2.3.2&amp;publisher=e66b9e1d-d8d2-411a-94cd-e915fff98226&amp;title=IM+Tweaks+0.8.1&amp;url=http%3A%2F%2Fwww.gusverdun.com%2F2007%2F10%2F13%2Fim-tweaks-108%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.gusverdun.com/2007/10/13/im-tweaks-108/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
