メゾットを呼び出そうとしているのですが、ディスパッチIDが取得できず・・・
[ここをクリックすると内容が表示されます]
コード: 全て選択
#include "IDispatch.sbp"
'IDispatchのポインタ
Dim pDisp As *IDispatch
Dim ClsID As GUID,hr As Long
'ProgIDからCLSIDを取得
_CLSIDFromProgID("InternetExplorer.Application",ClsID)
'COMの初期化
CoInitialize(NULL)
'オブジュクトの作成
If CoCreateInstance(ClsID,NULL,CLSCTX_LOCAL_SERVER,IID_IDispatch,VarPtr(pDisp))=S_OK Then'CLSCTX_ALL
OutputDebugString("IDispatch")
'メソッドのディスパッチIDを取得
Dim szFunction As *Byte,dispid As DISPID
Dim wszName[MAX_PATH] As Word
szFunction="Navigate"
MultiByteToWideChar(CP_ACP,0,szFunction,-1,wszName,MAX_PATH)
hr=pDisp->GetIDsOfNames(
IID_NULL,
wszName,
1,
LOCALE_SYSTEM_DEFAULT,
dispid
)
If hr Then OutputDebugString("DispIDの取得に失敗")
'IDispatchの解放
pDisp->Release():OutputDebugString("IDispatch::Release")
Else If &h80040154 Then
OutputDebugString("レジストリのサーバータイプ値が不正、または登録されていません")
End If
'COMのクローズ
CoUninitialize()
End