COM
ITypeLib::GetDocumentationは、ライブラリのドキュメント文字列など取得する。ITypeLib::GetDocumentation (oaidl.h) - Win32 apps | Microsoft LearnITypeLib.cppで、とする。 こうなる。こうなる。Sample/com/ITypeLib/GetDocumentation/src/ITypeLib at …
ITypeLib::GetTypeInfoCountで、持っているITypeInfoの数を返す。ITypeLib::GetTypeInfoCount (oaidl.h) - Win32 apps | Microsoft LearnITypeLib.cppで、こう書く。 こんなにいっぱい出る。こんなにいっぱい出る。Sample/com/ITypeLib/GetTypeInfoCount/src…
ITypeLib::GetTypeInfoで、指定のITypeInfoポインタを取得する。ITypeLib::GetTypeInfo (oaidl.h) - Win32 apps | Microsoft LearnITypeLib.cppで、こう書く。 0番目を取得。0番目を取得。Sample/com/ITypeLib/GetTypeInfo/src/ITypeLib at master · bg1bgst…
ITypeLibは、タイプライブラリのCOMインターフェイス。ITypeLib (oaidl.h) - Win32 apps | Microsoft Learn今回は、ITypeLib::GetTypeInfoCountで持っているITypeInfoポインタの数を取得 ITypeLib.cppで、こう書く。 こうなる。こうなる。Sample/com/ITypeLi…
LoadTypeLibで、タイプライブラリをロードする。LoadTypeLib 関数 (oleauto.h) - Win32 apps | Microsoft LearnLoadTypeLib.cppで、こう書く。 で、以前タイプライブラリが見つからないと言ってたが、色々探したら、 ここにあった。ここにあった。Sample/com…
ITypeInfo::GetNamesで、関数名を取得する。ITypeInfo::GetNames (oaidl.h) - Win32 apps | Microsoft Learn タイプライブラリITypeInfo.cppで、とすると、 こっから、こっから、 ここまでの大量の関数名ここまでの大量の関数名。Sample/com/ITypeInfo/GetNa…
ITypeInfo::GetFuncDescは、指定した関数情報FUNCDESCを取得する。ITypeInfo::GetFuncDesc (oaidl.h) - Win32 apps | Microsoft Learn タイプライブラリITypeInfo.cppで、とすると、 大量のMEMBERIDだが、一部重複してる。大量のMEMBERIDだが、一部重複して…
ITypeInfo::GetDocumentationで、型の名前やドキュメント文字列など取得する。ITypeInfo::GetDocumentation (oaidl.h) - Win32 apps | Microsoft Learn タイプライブラリITypeInfo.cppで、とすると、 こうなる。こうなる。 strDocStringはNULLなのね。Sample…
TYPEATTR構造体に型の属性が格納されている。TYPEATTR (oaidl.h) - Win32 apps | Microsoft Learn タイプライブラリTYPEATTR.cppで、とすると、 こうなる。こうなる。Sample/com/TYPEATTR/TYPEATTR/src/TYPEATTR at master · bg1bgst333/Sample · GitHub
ITypeInfo::GetTypeAttrで、型の属性を取得する。ITypeInfo::GetTypeAttr (oaidl.h) - Win32 apps | Microsoft LearnITypeInfo.cppで、とすると、 デバッガで止めた時のpTypeAttrはこうで、デバッガで止めた時のpTypeAttrはこうで、 この時の出力はこう。こ…
ITypeInfoは、型情報を持つインターフェース。ITypeInfo (oaidl.h) - Win32 apps | Microsoft LearnITypeInfo.cppで、ITypeInfo::GetDocumentationで、型名を取得。 "_Application"と出る。"_Application"と出る。 これ、タイプライブラリOleView.exeで"Type…
IDispatch::GetTypeInfoで、オブジェクトの型情報を取得する。IDispatch::GetTypeInfo (oaidl.h) - Win32 apps | Microsoft LearnIDispatch.cppで、として、デバッグ実行。 何度かこれが出るけど、「はい」で。何度かこれが出るけど、「はい」で。 pTypeInfo…
既に実行しているアプリを操作したい場合は、GetActiveObjectでアクティブな登録済みオブジェクトを取得すればいい。動的な実行 GetActiveObject function (oleauto.h) - Win32 apps | Microsoft LearnGetActiveObject.cppで、こうする。 Wordを起動しておい…
IDispatch::Invokeで、メソッドやプロパティにアクセス(呼び出しや設定・取得)する。動的な実行 IDispatch::Invoke (oaidl.h) - Win32 apps | Microsoft LearnIDispatch.cppで、ちょっと引数周りがややこしいけど、こうすると、 こうなってこうなって、 Word…
IDispatch::GetIDsOfNamesで、メソッドやプロパティのDISPIDを取得する。IDispatch (oaidl.h) - Win32 apps | Microsoft Learn 動的な実行IDispatch.cppで、こうすると、 こうなるこうなる。Sample/com/IDispatch/GetIDsOfNames/src/IDispatch at master · b…
IDispatchインターフェースを使って、オブジェクト、メソッド、プロパティを公開する。IDispatch (oaidl.h) - Win32 apps | Microsoft Learn 動的な実行まずは、IDispatchインターフェースポインタの取得から。 IDispatch.cppで、CoCreateInstanceで、IDispa…
CLSIDFromProgIDで、ProgIDからCLSIDを取得する。CLSIDFromProgID 関数 (combaseapi.h) - Win32 apps | Microsoft Learn 動的な実行ProgIDはレジストリに書いてある。 WordのProgIDは、"Word.Application"らしい。 CLSIDFromProgID.cppでは、こう書く。 CLSI…
IsEqualIIDで、2つのIIDが一致するか判定する。IsEqualIID - Win32 apps | Microsoft Learnこれまで、比較演算子"=="で比較してきたが、果たして正しいのか・・・。 たしか、構造体は"=="では比較できないはずだが・・・。WebBrowserHost.cppで、比較検証コ…
IWebBrowser2::put_Silentで、JavaScriptエラーなどのメッセージダイアログ表示を抑止する。Silent Property (IWebBrowser2) | Microsoft LearnWebBrowserHost.cppで、IWebBrowser2::put_SilentにVARIANT_TRUEをセット。 OKOK。 エラー出なくなって、騒がし…
IOleInPlaceObject::SetObjectRectsで、インプレースオブジェクトの範囲を指定する。IOleInPlaceObject::SetObjectRects (oleidl.h) - Win32 apps | Microsoft Learn 概要説明WebBrowserHost.cppで、こう書く。 成功はするが成功はするが、 左上に出来てしま…
IWebBrowser2のQueryInterfaceで、IOleInPlaceObjectポインタを取得する。IOleInPlaceObject (oleidl.h) - Win32 apps | Microsoft Learn 概要説明WebBrowserHost.hで、OnSizeを追加。 WebBrowserHost.cppで、IOleInPlaceObjectポインタの取得。 取得出来て…
IWebBrowser2::Navigateで指定のURLに遷移する。Navigate Method (IWebBrowser2) | Microsoft Learn 概要説明WebBrowserHost.hで、Navigateを追加。 これの定義は、こう書く。初期化後に初期URLに遷移。 古いブラウザなのでスクリプトエラー古いブラウザなの…
IOleInPlaceSiteも実装する。IOleInPlaceSite (oleidl.h) - Win32 apps | Microsoft Learn 概要説明WebBrowserHost.hで、IOleInPlaceSiteは、IOleWindowを継承してるので、両方のメソッドを追加する。 WebBrowserHost.cppで、メソッドの実装はこう。QueryInt…
IOleObject::DoVerbで、『エンドユーザーのアクションに応答してオブジェクトがアクションを実行するように要求します』ということらしい。IOleObject::D oVerb (oleidl.h) - Win32 apps | Microsoft Learn 概要説明WebBrowserHost.cppで、こう書く。 失敗し…
IOleObject::SetClientSiteで、IOleClientSiteポインタ(に扮したCWebBrowserHostポインタ)をセットする。IOleObject::SetClientSite (oleidl.h) - Win32 apps | Microsoft Learn 概要説明WebBrowserHost.cppで、こう書く。 ここまで上手くいってる。ここまで…
CWebBrowserHost自身に、IOleClientSiteを実装し、自身のポインタthisをIOleClientSiteポインタにキャストする。IOleClientSite (oleidl.h) - Win32 apps | Microsoft Learn 概要説明WebBrowserHost.hで、IOleClientSiteを継承に追加。 参照カウンタm_lRefも…
IWebBrowser2からIOleObjectを取得する。IOleObject インターフェイス (Microsoft.VisualStudio.OLE.Interop) | Microsoft Learn 概要説明QueryInterfaceで取得出来る。このように書く。 取得出来てる取得出来てる。Sample/com/IOleObject/IOleObject/src/IO…
IWebBrowser2は、いわゆるウェブブラウザコンポーネントの本体である。IWebBrowser2 (exdisp.h) - Win32 apps | Microsoft Learn 概要説明TestやBFCで作ってたCUserControlクラスを継承して、CWebBrowserHostクラスを作成し、そこにIWebBrowser2などを使って…
OleInitializeは、OLEの初期化をする。OleInitialize 関数 (ole2.h) - Win32 apps | Microsoft Learn内部でCoInitializeExを呼んでCOMの初期化してるらしい。 OleInitialize.cppで、この先、デスクトップアプリで使うので、_tWinMainで呼び出すことにした。 …
IsEqualCLSIDでも、同じか判定できる。 といっても、中身は一緒。IsEqualCLSID - Win32 apps | Microsoft LearnIsEqualCLSID.cppで、今度は、"{53F56307-B6BF-11D0-94F2-00A0C91EFB8B}"とGUID_DEVINTERFACE_DISKを比較。 同じ。同じ。Sample/com/IsEqualCLSI…