「Windowsの右クリックメニューから複数ファイルをまとめて開く」の版間の差分

Notion-MW
Notion-MW
タグ: 差し戻し済み
159行目: 159行目:
拡張子が.tで始まるファイル(*.txt, *.ttfなど)のみにメニューを追加するサンプル(から抜粋)。
拡張子が.tで始まるファイル(*.txt, *.ttfなど)のみにメニューを追加するサンプル(から抜粋)。


<syntaxhighlight lang="vb.net">IFACEMETHODIMP CNonDefaultDropMenuVerb::QueryContextMenu(HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT /*idCmdLast*/, UINT /*uFlags*/)
<pre class="visual">IFACEMETHODIMP CNonDefaultDropMenuVerb::QueryContextMenu(HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT /*idCmdLast*/, UINT /*uFlags*/)
{
{
     FORMATETC fmte = { CF_HDROP, NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL };
     FORMATETC fmte = { CF_HDROP, NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL };
     STGMEDIUM medium;
     STGMEDIUM medium;
     HRESULT hr = _pdtobj->GetData(&fmte, &medium);
     HRESULT hr = _pdtobj-&gt;GetData(&amp;fmte, &amp;medium);
     if (SUCCEEDED(hr))
     if (SUCCEEDED(hr))
     {
     {
170行目: 170行目:
         DragQueryFile(hdrop, 0, szFile, ARRAYSIZE(szFile));
         DragQueryFile(hdrop, 0, szFile, ARRAYSIZE(szFile));
         const WCHAR* ext = wcsrchr(szFile, L'.');
         const WCHAR* ext = wcsrchr(szFile, L'.');
         ReleaseStgMedium(&medium);
         ReleaseStgMedium(&amp;medium);
         if (ext && *(ext+1) != L't') {
         if (ext &amp;&amp; *(ext+1) != L't') {
             return MAKE_HRESULT(SEVERITY_SUCCESS, 0, 0);  // Add nothing
             return MAKE_HRESULT(SEVERITY_SUCCESS, 0, 0);  // Add nothing
         }
         }
189行目: 189行目:


     return MAKE_HRESULT(SEVERITY_SUCCESS, 0, (USHORT)(2));  // indicate that we added 2 verbs.
     return MAKE_HRESULT(SEVERITY_SUCCESS, 0, (USHORT)(2));  // indicate that we added 2 verbs.
}</syntaxhighlight>
}</pre>
* 特定の拡張子に対して追加できるのは以下で知った
* 特定の拡張子に対して追加できるのは以下で知った
** できるという情報<br />
** できるという情報<br />