Last Updated 2002/11/25
Windows
エクスプローラの右クリックにてファイル名を取得
2002/11/25

エクスプローラの右クリックにてファイル名を取得には,IShellExtInit の Initialize メソッドの第2パラメータが LPDATAOBJECT なので DragQueryFile を使って取得する.

(1つ選択時に取得する例)

HRES hres = E_FAIL;
FORMATETC fmte = {CF_HDROP, NULL, DVASPECT_CONTENT, -1, TYPED_HGLOBAL };
STGMEDIUM medium;


  if( FAILED(pDataObj->GetData(&fmte, &medium)) ) return E_FAIL;
  if( DragQueryFile((HDROP)medium.hGlobal, (UINT)(-1), NULL, 0) == 1 ){
      DragQueryFile((HDROP)medium.hGlobal, 0, 受け取るバッファ, サイズ);
      hres = S_OK;
  }
  ReleaseStgMedium(&medium);
  return hres;

(メニューの階層化は IContextMenu)


参照
前後のTips
エクスプローラの右クリックにてファイル名を取得

DSS ProgrammingTipsCGI Ver1.02