「Windowsの右クリックメニューから複数ファイルをまとめて開く」の版間の差分
Notion-MW |
Notion-MW タグ: 差し戻し済み |
||
159行目: | 159行目: | ||
拡張子が.tで始まるファイル(*.txt, *.ttfなど)のみにメニューを追加するサンプル(から抜粋)。 | 拡張子が.tで始まるファイル(*.txt, *.ttfなど)のみにメニューを追加するサンプル(から抜粋)。 | ||
< | <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- | HRESULT hr = _pdtobj->GetData(&fmte, &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(&medium); | ||
if (ext && *(ext+1) != L't') { | if (ext && *(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. | ||
}</ | }</pre> | ||
* 特定の拡張子に対して追加できるのは以下で知った | * 特定の拡張子に対して追加できるのは以下で知った | ||
** できるという情報<br /> | ** できるという情報<br /> |