<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>kevin Mocha - Tricks</title>
    <link>http://blog.ilovedoudou.com/</link>
    <description>Bookmarks collected from web.</description>
    <language>en-us</language>
    <copyright>Kevin Mocha</copyright>
    <lastBuildDate>Wed, 27 Jan 2010 15:49:24 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.6264.0</generator>
    <managingEditor>lulustock@gmail.com</managingEditor>
    <webMaster>lulustock@gmail.com</webMaster>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=ec11bc1e-7165-48bc-8ff0-dc240bb09445</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,ec11bc1e-7165-48bc-8ff0-dc240bb09445.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,ec11bc1e-7165-48bc-8ff0-dc240bb09445.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=ec11bc1e-7165-48bc-8ff0-dc240bb09445</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Setting the value will force future processes in that space to use the specified .NET
runtime, like: 
</p>
        <p>
          <code>set COMPLUS_Version = v3.5</code>
        </p>
        <p>
That would force everything to run in .NET 3.5.
</p>
        <p>
          <a title="http://www.cookcomputing.com/blog/archives/000597.html" href="http://www.cookcomputing.com/blog/archives/000597.html">http://www.cookcomputing.com/blog/archives/000597.html</a>
        </p>
        <p>
It is not necessary to rebuild NUnit. I discovered that if you add the following to
the relevant NUnit application config file you can run a test dll built for .NET 4.0.
Under &lt;configuration&gt; add: 
</p>
        <pre>&lt;startup&gt;
  &lt;requiredRuntime version="v4.0.20506" /&gt;
&lt;/startup&gt;
</pre>
        <p>
and under &lt;runtime&gt; add: 
</p>
        <pre>&lt;loadFromRemoteSources enabled="true" /&gt;
</pre>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=ec11bc1e-7165-48bc-8ff0-dc240bb09445" />
      </body>
      <title>NUnit and COMPLUS_Version Environment Variable</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,ec11bc1e-7165-48bc-8ff0-dc240bb09445.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,ec11bc1e-7165-48bc-8ff0-dc240bb09445.aspx</link>
      <pubDate>Wed, 27 Jan 2010 15:49:24 GMT</pubDate>
      <description>&lt;p&gt;
Setting the value will force future processes in that space to use the specified .NET
runtime, like: 
&lt;p&gt;
&lt;code&gt;set COMPLUS_Version = v3.5&lt;/code&gt; 
&lt;p&gt;
That would force everything to run in .NET 3.5.
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://www.cookcomputing.com/blog/archives/000597.html" href="http://www.cookcomputing.com/blog/archives/000597.html"&gt;http://www.cookcomputing.com/blog/archives/000597.html&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
It is not necessary to rebuild NUnit. I discovered that if you add the following to
the relevant NUnit application config file you can run a test dll built for .NET 4.0.
Under &amp;lt;configuration&amp;gt; add: 
&lt;/p&gt;
&lt;pre&gt;&amp;lt;startup&amp;gt;
  &amp;lt;requiredRuntime version="v4.0.20506" /&amp;gt;
&amp;lt;/startup&amp;gt;
&lt;/pre&gt;
&lt;p&gt;
and under &amp;lt;runtime&amp;gt; add: &lt;pre&gt;&amp;lt;loadFromRemoteSources enabled="true" /&amp;gt;
&lt;/pre&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=ec11bc1e-7165-48bc-8ff0-dc240bb09445" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,ec11bc1e-7165-48bc-8ff0-dc240bb09445.aspx</comments>
      <category>DotNet;Tricks</category>
    </item>
    <item>
      <trackback:ping>http://blog.ilovedoudou.com/Trackback.aspx?guid=1276b884-7927-4463-862d-b2582782590c</trackback:ping>
      <pingback:server>http://blog.ilovedoudou.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.ilovedoudou.com/PermaLink,guid,1276b884-7927-4463-862d-b2582782590c.aspx</pingback:target>
      <dc:creator>Kevin Mocha</dc:creator>
      <wfw:comment>http://blog.ilovedoudou.com/CommentView,guid,1276b884-7927-4463-862d-b2582782590c.aspx</wfw:comment>
      <wfw:commentRss>http://blog.ilovedoudou.com/SyndicationService.asmx/GetEntryCommentsRss?guid=1276b884-7927-4463-862d-b2582782590c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a title="http://channel9.msdn.com/posts/jmazner/How-To-Tell-Vistas-UAC-What-Privelege-Level-Your-App-Requires/" href="http://channel9.msdn.com/posts/jmazner/How-To-Tell-Vistas-UAC-What-Privelege-Level-Your-App-Requires/">http://channel9.msdn.com/posts/jmazner/How-To-Tell-Vistas-UAC-What-Privelege-Level-Your-App-Requires/</a>
        </p>
        <p>
          <a title="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1439749&amp;SiteID=1" href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1439749&amp;SiteID=1">http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1439749&amp;SiteID=1</a> (Might
work)
</p>
        <pre class="csharpcode">#include <span class="str">"stdafx.h"</span><span class="rem">//
includes &lt;tchar.h&gt;</span> #include &lt;windows.h&gt; #include &lt;shobjidl.h&gt; <span class="rem">//
ShellLink</span> #include &lt;shlobj.h&gt; <span class="rem">// IShellLinkDataList
(build on Vista use shobjidl.h)</span> #include &lt;objbase.h&gt; <span class="rem">//
CoInitialize, CoInitializeEx, CoUninitialize</span><span class="kwrd">int</span> _tmain(<span class="kwrd">int</span> argc,
_TCHAR* argv[]) { HRESULT result; WCHAR wbuf[MAX_PATH]; IShellLink* link; IPersistFile*
file; <span class="kwrd">char</span> szFile[MAX_PATH]; <span class="kwrd">char</span> szProgramMenuFolder[MAX_PATH]; <span class="rem">//
SHOULD use CoInitializeEx, but compiler can't find it.</span> result = CoInitialize(NULL); <span class="rem">//
For Ex: 2nd param: COINIT_APARTMENTTHREADED</span><span class="rem">// Create IShellLink
object</span> result = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
IID_IShellLink, (<span class="kwrd">void</span>**)&amp;link); <span class="kwrd">if</span> (result
!= S_OK) { CoUninitialize(); <span class="kwrd">return</span> -1; } <span class="rem">//
Retreive the IPersistFile</span> result = link-&gt;QueryInterface(IID_IPersistFile,
(<span class="kwrd">void</span>**)&amp;file); <span class="kwrd">if</span> (result
!= S_OK) { link-&gt;Release(); CoUninitialize(); <span class="kwrd">return</span> -2;
} <span class="rem">// SHOULD get from registry.</span> strcpy(szProgramMenuFolder, <span class="str">"C:\\ProgramData\\Microsoft\\Windows\\Start
Menu\\Programs\\"); // DEBUG strcpy(szFile, szProgramMenuFolder); // SHOULD use your
folder and shortcut name. strcat(szFile, "</span>Program Shortcut Folder\\Shortcut.lnk"); <span class="rem">//
Convert the filename</span> MultiByteToWideChar(CP_ACP, 0, szFile, -1, wbuf, <span class="kwrd">sizeof</span>(wbuf)-1); <span class="rem">//
Load the link data from the file</span> result = file-&gt;Load(wbuf, STGM_READ); <span class="kwrd">if</span> (result
!= S_OK) { file-&gt;Release(); link-&gt;Release(); CoUninitialize(); <span class="kwrd">return</span> -3;
} <span class="rem">// Look for IShellLinkDataList interface</span> IShellLinkDataList*
pdl; result = link-&gt;QueryInterface(IID_IShellLinkDataList, (<span class="kwrd">void</span>**)&amp;pdl); <span class="kwrd">if</span> (result
!= S_OK) { file-&gt;Release(); link-&gt;Release(); CoUninitialize(); <span class="kwrd">return</span> -4; <span class="rem">//
Where did IShellLinkDataList go?</span> } DWORD dwFlags = 0; result = pdl-&gt;GetFlags(&amp;dwFlags); <span class="kwrd">if</span> (result
!= S_OK) { pdl-&gt;Release(); file-&gt;Release(); link-&gt;Release(); CoUninitialize(); <span class="kwrd">return</span> -5;
} <span class="rem">// Only set SLDF_RUNAS_USER if it's not set, otherwise</span><span class="rem">//
SetFlags returns an error.</span><span class="kwrd">if</span> ((SLDF_RUNAS_USER &amp;
dwFlags) != SLDF_RUNAS_USER) { result = pdl-&gt;SetFlags(SLDF_RUNAS_USER | dwFlags); <span class="kwrd">if</span> (result
!= S_OK) { pdl-&gt;Release(); file-&gt;Release(); link-&gt;Release(); CoUninitialize(); <span class="kwrd">return</span> -6;
} } <span class="kwrd">else</span> { pdl-&gt;Release(); file-&gt;Release(); link-&gt;Release();
CoUninitialize(); <span class="kwrd">return</span> 0; } result = file-&gt;Save(NULL, <span class="kwrd">true</span>); <span class="kwrd">if</span> (result
!= S_OK) { pdl-&gt;Release(); file-&gt;Release(); link-&gt;Release(); CoUninitialize(); <span class="kwrd">return</span> -8;
} result = file-&gt;SaveCompleted(NULL); <span class="kwrd">if</span> (result != S_OK)
{ pdl-&gt;Release(); file-&gt;Release(); link-&gt;Release(); CoUninitialize(); <span class="kwrd">return</span> -9;
} pdl-&gt;Release(); file-&gt;Release(); link-&gt;Release(); CoUninitialize(); <span class="kwrd">return</span> ERROR_SUCCESS;
} </pre>
        <style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
        <img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=1276b884-7927-4463-862d-b2582782590c" />
      </body>
      <title>How To: Tell Vista's UAC What Privelege Level Your App Requires</title>
      <guid isPermaLink="false">http://blog.ilovedoudou.com/PermaLink,guid,1276b884-7927-4463-862d-b2582782590c.aspx</guid>
      <link>http://blog.ilovedoudou.com/PermaLink,guid,1276b884-7927-4463-862d-b2582782590c.aspx</link>
      <pubDate>Wed, 10 Sep 2008 18:36:58 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a title="http://channel9.msdn.com/posts/jmazner/How-To-Tell-Vistas-UAC-What-Privelege-Level-Your-App-Requires/" href="http://channel9.msdn.com/posts/jmazner/How-To-Tell-Vistas-UAC-What-Privelege-Level-Your-App-Requires/"&gt;http://channel9.msdn.com/posts/jmazner/How-To-Tell-Vistas-UAC-What-Privelege-Level-Your-App-Requires/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1439749&amp;amp;SiteID=1" href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1439749&amp;amp;SiteID=1"&gt;http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1439749&amp;amp;SiteID=1&lt;/a&gt; (Might
work)
&lt;/p&gt;
&lt;pre class="csharpcode"&gt;#include &lt;span class="str"&gt;"stdafx.h"&lt;/span&gt; &lt;span class="rem"&gt;//
includes &amp;lt;tchar.h&amp;gt;&lt;/span&gt; #include &amp;lt;windows.h&amp;gt; #include &amp;lt;shobjidl.h&amp;gt; &lt;span class="rem"&gt;//
ShellLink&lt;/span&gt; #include &amp;lt;shlobj.h&amp;gt; &lt;span class="rem"&gt;// IShellLinkDataList
(build on Vista use shobjidl.h)&lt;/span&gt; #include &amp;lt;objbase.h&amp;gt; &lt;span class="rem"&gt;//
CoInitialize, CoInitializeEx, CoUninitialize&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; _tmain(&lt;span class="kwrd"&gt;int&lt;/span&gt; argc,
_TCHAR* argv[]) { HRESULT result; WCHAR wbuf[MAX_PATH]; IShellLink* link; IPersistFile*
file; &lt;span class="kwrd"&gt;char&lt;/span&gt; szFile[MAX_PATH]; &lt;span class="kwrd"&gt;char&lt;/span&gt; szProgramMenuFolder[MAX_PATH]; &lt;span class="rem"&gt;//
SHOULD use CoInitializeEx, but compiler can't find it.&lt;/span&gt; result = CoInitialize(NULL); &lt;span class="rem"&gt;//
For Ex: 2nd param: COINIT_APARTMENTTHREADED&lt;/span&gt; &lt;span class="rem"&gt;// Create IShellLink
object&lt;/span&gt; result = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
IID_IShellLink, (&lt;span class="kwrd"&gt;void&lt;/span&gt;**)&amp;amp;link); &lt;span class="kwrd"&gt;if&lt;/span&gt; (result
!= S_OK) { CoUninitialize(); &lt;span class="kwrd"&gt;return&lt;/span&gt; -1; } &lt;span class="rem"&gt;//
Retreive the IPersistFile&lt;/span&gt; result = link-&amp;gt;QueryInterface(IID_IPersistFile,
(&lt;span class="kwrd"&gt;void&lt;/span&gt;**)&amp;amp;file); &lt;span class="kwrd"&gt;if&lt;/span&gt; (result
!= S_OK) { link-&amp;gt;Release(); CoUninitialize(); &lt;span class="kwrd"&gt;return&lt;/span&gt; -2;
} &lt;span class="rem"&gt;// SHOULD get from registry.&lt;/span&gt; strcpy(szProgramMenuFolder, &lt;span class="str"&gt;"C:\\ProgramData\\Microsoft\\Windows\\Start
Menu\\Programs\\"); // DEBUG strcpy(szFile, szProgramMenuFolder); // SHOULD use your
folder and shortcut name. strcat(szFile, "&lt;/span&gt;Program Shortcut Folder\\Shortcut.lnk"); &lt;span class="rem"&gt;//
Convert the filename&lt;/span&gt; MultiByteToWideChar(CP_ACP, 0, szFile, -1, wbuf, &lt;span class="kwrd"&gt;sizeof&lt;/span&gt;(wbuf)-1); &lt;span class="rem"&gt;//
Load the link data from the file&lt;/span&gt; result = file-&amp;gt;Load(wbuf, STGM_READ); &lt;span class="kwrd"&gt;if&lt;/span&gt; (result
!= S_OK) { file-&amp;gt;Release(); link-&amp;gt;Release(); CoUninitialize(); &lt;span class="kwrd"&gt;return&lt;/span&gt; -3;
} &lt;span class="rem"&gt;// Look for IShellLinkDataList interface&lt;/span&gt; IShellLinkDataList*
pdl; result = link-&amp;gt;QueryInterface(IID_IShellLinkDataList, (&lt;span class="kwrd"&gt;void&lt;/span&gt;**)&amp;amp;pdl); &lt;span class="kwrd"&gt;if&lt;/span&gt; (result
!= S_OK) { file-&amp;gt;Release(); link-&amp;gt;Release(); CoUninitialize(); &lt;span class="kwrd"&gt;return&lt;/span&gt; -4; &lt;span class="rem"&gt;//
Where did IShellLinkDataList go?&lt;/span&gt; } DWORD dwFlags = 0; result = pdl-&amp;gt;GetFlags(&amp;amp;dwFlags); &lt;span class="kwrd"&gt;if&lt;/span&gt; (result
!= S_OK) { pdl-&amp;gt;Release(); file-&amp;gt;Release(); link-&amp;gt;Release(); CoUninitialize(); &lt;span class="kwrd"&gt;return&lt;/span&gt; -5;
} &lt;span class="rem"&gt;// Only set SLDF_RUNAS_USER if it's not set, otherwise&lt;/span&gt; &lt;span class="rem"&gt;//
SetFlags returns an error.&lt;/span&gt; &lt;span class="kwrd"&gt;if&lt;/span&gt; ((SLDF_RUNAS_USER &amp;amp;
dwFlags) != SLDF_RUNAS_USER) { result = pdl-&amp;gt;SetFlags(SLDF_RUNAS_USER | dwFlags); &lt;span class="kwrd"&gt;if&lt;/span&gt; (result
!= S_OK) { pdl-&amp;gt;Release(); file-&amp;gt;Release(); link-&amp;gt;Release(); CoUninitialize(); &lt;span class="kwrd"&gt;return&lt;/span&gt; -6;
} } &lt;span class="kwrd"&gt;else&lt;/span&gt; { pdl-&amp;gt;Release(); file-&amp;gt;Release(); link-&amp;gt;Release();
CoUninitialize(); &lt;span class="kwrd"&gt;return&lt;/span&gt; 0; } result = file-&amp;gt;Save(NULL, &lt;span class="kwrd"&gt;true&lt;/span&gt;); &lt;span class="kwrd"&gt;if&lt;/span&gt; (result
!= S_OK) { pdl-&amp;gt;Release(); file-&amp;gt;Release(); link-&amp;gt;Release(); CoUninitialize(); &lt;span class="kwrd"&gt;return&lt;/span&gt; -8;
} result = file-&amp;gt;SaveCompleted(NULL); &lt;span class="kwrd"&gt;if&lt;/span&gt; (result != S_OK)
{ pdl-&amp;gt;Release(); file-&amp;gt;Release(); link-&amp;gt;Release(); CoUninitialize(); &lt;span class="kwrd"&gt;return&lt;/span&gt; -9;
} pdl-&amp;gt;Release(); file-&amp;gt;Release(); link-&amp;gt;Release(); CoUninitialize(); &lt;span class="kwrd"&gt;return&lt;/span&gt; ERROR_SUCCESS;
} &lt;/pre&gt;
&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/style&gt;
&lt;img width="0" height="0" src="http://blog.ilovedoudou.com/aggbug.ashx?id=1276b884-7927-4463-862d-b2582782590c" /&gt;</description>
      <comments>http://blog.ilovedoudou.com/CommentView,guid,1276b884-7927-4463-862d-b2582782590c.aspx</comments>
      <category>SDR;Tricks</category>
    </item>
  </channel>
</rss>