COM

IStream

COM

IStreamは、ストリームオブジェクトに対する読み書きや各種情報などを取得する機能を提供するインターフェース。IStream (objidl.h) - Win32 apps | Microsoft Docsストリームサイズ(ファイルサイズ)を取得してみる。コンソールコンソール。空プロ空プロ。sh…

OleLoadPicture

COM

Jpegは、OleLoadPictureを使って読み込むことが出来る。OleLoadPicture function (olectl.h) - Win32 apps | Microsoft Docs前回のIStreamをこれでIPictureにして、そこから最終的にHBITMAPを取得できる。CreateStreamOnHGlobalでIStreamポインタpStreamを取…

CreateStreamOnHGlobal

COM

CreateStreamOnHGlobalは、GlobalAllocで確保したメモリにJpegなどの画像ファイルバイナリを格納したものを元にして、IStreamオブジェクトを生成し、IStreamポインタを返す。CreateStreamOnHGlobal function (combaseapi.h) - Win32 apps | Microsoft DocsWi…

IPersistFile::Save

COM

IPersistFile::Saveで、ショートカットをファイルに保存する。IPersistFile::Save (objidl.h) - Win32 apps | Microsoft Docsショートカットを作成し、ショートカットのパスも出力している。 実行すると、 tszSrcPath = c:\Project\Cloud\github.com\Sample\…

IPersistFile

COM

ショートカットをファイルに保存するには、IPersistFileインターフェースが必要。 まずは、QueryInterfaceでポインタを取得する。IPersistFile (objidl.h) - Win32 apps | Microsoft Docsポインタの値を出力。 tszSrcPath = c:\project\cloud\github.com\sam…

IShellLink::SetPath

COM

ショートカットリンク先の実体ファイルパスをセットする場合には、IShellLink::SetPathを使う。IShellLinkA::SetPath (shobjidl_core.h) - Win32 apps | Microsoft Docsとりあえずセットはしてみる。 (ただ、これだけで完成ではない。)一応、確認のために、I…

IShellLink

COM

これまでは、COMサーバを作る側で紹介してきたが、ここからはCOMクライアントとして呼ぶ側として紹介していく。IShellLinkは、ショートカットを作成したり、ショートカットのリンク先情報を取得する時などに使う。IShellLinkA | Microsoft Docs ショートカッ…

IClassFactory

COM

IClassFactoryは、オブジェクトの作成を可能にするインターフェース。IClassFactory | Microsoft DocsIUnknownだけでは、不完全なので、今回はIClassFactoryも含めた形のモノを作成。まず、Main.cppで、前回と違うのは、CoGetClassObjectではなく、CoCreateI…

IUnknown

COM

COMは、Microsoftが提唱した技術で、ある言語でできたライブラリなどのコンポーネントを別の言語から利用できるようにしたコンポーネントの仕様である・・・。Component Object Model - WikipediaCOMは、コンポーネント本体とそれを別の言語から利用できるよ…