DECLARE_IUNKNOWN
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
DECLARE_IUNKNOWN マクロは、新しいインターフェイスの基本インターフェイスの 3 つのメソッドを宣言します。
構文
#define DECLARE_IUNKNOWN \
STDMETHODIMP QueryInterface(REFIID riid, void **ppv) { \
return GetOwner()->QueryInterface(riid,ppv); \
}; \
STDMETHODIMP_(ULONG) AddRef() { \
return GetOwner()->AddRef(); \
}; \
STDMETHODIMP_(ULONG) Release() { \
return GetOwner()->Release(); \
};
解説
新しいインターフェイスを作成するときは、QueryInterface、AddRef、Release の 3 つのメソッドを持つ IUnknown から派生する必要があります。 このマクロは、新しいインターフェイスに対してこれらの各メソッドを宣言することで、宣言プロセスを簡略化します。
このマクロは、 CUnknown クラスから直接または間接的に派生するクラスでのみ機能します。
要件
要件 | 値 |
---|---|
ヘッダー |
|
ライブラリ |
|