⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cb200006dc_f.asp.htm

📁 C++builder学习资料C++builder
💻 HTM
📖 第 1 页 / 共 5 页
字号:
       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;{ </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i> <span Class=CodeBlue>// Using the IEnumIDList interface's Next() method, </span></i></span></p>       

       

<p class=Code><span class=Code><i><span Class=CodeBlue>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// we       

iterate through the item IDs one at a time. The</span></i></span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i> <span Class=CodeBlue>// resulting item is stored in lpidlCurrent. </span></i></span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LPITEMIDLIST lpidlCurrent; </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b> while</b>       

(lpeidl-&gt;Next(1, &amp;lpidlCurrent, NULL) == S_OK) </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i> <span Class=CodeBlue>// Will hold the attributes of each enumerated</span></i></span></p>       

       

<p class=Code><span class=Code><i><span Class=CodeBlue>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//       

object (here we specify the ones we want</span></i></span></p>       

       

<p class=Code><span class=Code><i><span Class=CodeBlue>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//       

returned). </span></i></span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b> unsigned</b>       

<b>long</b> ulAttrs = SFGAO_DISPLAYATTRMASK       

|</span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SFGAO_FILESYSTEM | SFGAO_FOLDER; </span></p>       

       

<p class=Code><span class=Code>&nbsp; </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i> <span Class=CodeBlue>// Get the attributes of the file. </span></i></span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HRESULT HResult =</span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_FPShellFolder-&gt;GetAttributesOf(1, </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b> static_cast</b>&lt;LPCITEMIDLIST *&gt;(&amp;lpidlCurrent), </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;ulAttrs); </span></p>       

       

<p class=Code><span class=Code>&nbsp; </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b> if</b>       

(SUCCEEDED(HResult)) </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i> <span Class=CodeBlue>// Create a fully qualified itemidlist. </span></i></span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LPITEMIDLIST lpidlFQ =</span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MergeIDLists(m_FPidl,       

lpidlCurrent); </span></p>       

       

<p class=Code><span class=Code>&nbsp; </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i> <span Class=CodeBlue>// Determine the attributes of this object. </span></i></span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b> bool</b>       

IsVirtual = !(ulAttrs &amp; SFGAO_FILESYSTEM); </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>bool</b> IsFolder =       

(ulAttrs &amp; SFGAO_FOLDER); </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b> bool</b>       

IsLink = (ulAttrs &amp; SFGAO_LINK); </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b> bool</b>       

IsShared = (ulAttrs &amp; SFGAO_SHARE); </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b> bool</b>       

IsGhosted = (ulAttrs &amp; SFGAO_GHOSTED); </span></p>       

       

<p class=Code><span class=Code>&nbsp; </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i> <span Class=CodeBlue>// Create a new TListShellInfo instance. </span></i></span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TListShellInfo* ShellInfo =</span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b> new</b> TListShellInfo(</span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lpidlFQ, lpidlCurrent,       

IsVirtual, </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IsFolder, IsLink, IsShared,       

IsGhosted); </span></p>       

       

<p class=Code><span class=Code>&nbsp; </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i> <span Class=CodeBlue>// Fire the OnEnumeration event to determine</span></i></span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i> <span Class=CodeBlue>// whether to add this item. </span></i></span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b> bool</b>       

CanAdd = <b>true</b>;</span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b> if</b>       

(ShellInfo &amp;&amp; m_FOnEnumeration) </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_FOnEnumeration(<b       

style='mso-bidi-font-weight:normal'>this</b>, *ShellInfo, CanAdd); </span></p>       

       

<p class=Code><span class=Code>&nbsp; </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b> if</b>       

(CanAdd) </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i> <span Class=CodeBlue>// Add a new TListItem. </span></i></span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TListItem* Item = Items-&gt;Add();</span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>if</b> (Item) </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i> <span Class=CodeBlue>// Associate the TListShellInfo with Data. </span></i></span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Item-&gt;Data = ShellInfo; </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i> <span Class=CodeBlue>// Set the caption for this item. </span></i></span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Item-&gt;Caption =</span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DisplayNameFromPIDL(m_FPShellFolder, </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lpidlCurrent); </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i> <span Class=CodeBlue>// Otherwise, free the ShellInfo instance</span></i></span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i> <span Class=CodeBlue>// (will free lpidlFQ and lpidlCurrent). </span></i></span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b> else</b> </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b> delete</b> ShellInfo; </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b> else</b></span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i> <span Class=CodeBlue>// Otherwise, free the ShellInfo instance</span></i></span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i> <span Class=CodeBlue>// (will free lpidlFQ and lpidlCurrent). </span></i></span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b> delete</b> ShellInfo; </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i> <span Class=CodeBlue>// If the GetAttributesOf call failed, </span></i></span></p>       

       

<p class=Code><span class=Code><i><span Class=CodeBlue>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//       

destroy the PIDL. </span></i></span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b> else</b>       

</span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FreePIDL(lpidlCurrent); </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;} </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;<b> catch</b>       

(...)</span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;{ </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i> <span Class=CodeBlue>// Release the pointer to the IEnumIDList interface. </span></i></span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lpeidl-&gt;Release();</span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;} </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;<i> <span Class=CodeBlue>// Release the pointer to the IEnumIDList interface. </span></i></span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;lpeidl-&gt;Release();</span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;} </span></p>       

       

<p class=Code><span class=Code>}</span></p>       

       

<p class=Subheads>End Listing       

Two</p>       

       

<p class=BodyText> &nbsp; </p>       

       

<p class=Subheads><a name=ListingThree></a>Begin Listing Three - Supplying the list view with shell       

information</p>       

       

<p class=Code><span class=Code><i><span Class=CodeBlue>// </span></i></span></p>       

       

<p class=Code><span class=Code><i><span Class=CodeBlue>// private CNNotify member function (CN_NOTIFY </span></i></span></p>       

       

<p class=Code><span class=Code><i><span Class=CodeBlue>// message handler). </span></i></span></p>       

       

<p class=Code><span class=Code><i><span Class=CodeBlue>// </span></i></span></p>       

       

<p class=Code><span class=Code><b>void</b> <b       

style='mso-bidi-font-weight:normal'>__fastcall</b>       

TExpListView::CNNotify(TMessage&amp; AMsg) </span></p>       

       

<p class=Code><span class=Code>{</span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;<i> <span Class=CodeBlue>// Grab a pointer to the NMHDR structure. </span></i></span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp; LPNMHDR lpnmhdr = <b>reinterpret_cast</b>&lt;LPNMHDR&gt;(AMsg.LParam); </span></p>       

       

<p class=Code><span class=Code>&nbsp; </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;<i> <span Class=CodeBlue>// If the notification is an item info request. </span></i></span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;<b> if</b>       

(lpnmhdr-&gt;code == LVN_GETDISPINFO) </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;{ </span></p>       

       

<p class=Code><span class=Code>&nbsp;&nbsp;&nbsp;&nbsp;<i> <span Class=CodeBlue>// Grab a point

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -