http://www.dsource.org/projects/bindings/wiki/WindowsApi
ここのWin32APIのポーティングなんだけど
IUnknown継承したインターフェイスをCoCreateInstanceして
QueryInterfaceすると実行時に落ちる

調べたら継承先インターフェイスでQueryInterface、AddRef、Releaseを定義してあると
IUnknownの実装がIShellFolderに受け継がれないっぽい。
3つの定義コメントアウトしたらちゃんと動いた。
これってD2のバグ?やり方がおかしいだけ?
それともPhobosのIUnknown使って全部書き直せって事?

×interface IShellFolder : public IUnknown{
  HRESULT QueryInterface(REFIID,PVOID*);
  ULONG AddRef();
  ULONG Release();
  HRESULT ParseDisplayName(HWND,LPBC,LPOLESTR,PULONG,LPITEMIDLIST*,PULONG);
  HRESULT EnumObjects(HWND,DWORD,LPENUMIDLIST*);
  :
}

○interface IShellFolder : public IUnknown{
  //HRESULT QueryInterface(REFIID,PVOID*);
  //ULONG AddRef();
  //ULONG Release();
  HRESULT ParseDisplayName(HWND,LPBC,LPOLESTR,PULONG,LPITEMIDLIST*,PULONG);
  HRESULT EnumObjects(HWND,DWORD,LPENUMIDLIST*);
  :
}