IUnknown
IUnknownには、QueryInerface、AddRef、Releaseの3つのメソッドがある。QueryInterfaceは、ほかに実装しているインタフェースを問い合わせ、取得するメソッドである。AddRefとReleaseは、それぞれ参照カウントの増減を行う。
QueryInterfaceはインタフェースを識別するGUID (通常インタフェースID (IID) と呼ぶ) に基づいて、他のインタフェースへのポインタを得るために用いる。対象のCOMオブジェクトが実装していないインタフェースを要求された場合には、エラー値としてE_NOINTERFACEを返す。 なお、すべてのCOMオブジェクトはIUnknownを実装しているという性質上、IUnknownのIIDを引数に指定してのQueryInterfaceは必ず成功する。
AddRefはクライアントがこのCOMオブジェクトの参照を始めることを伝えるために用いる。
ReleaseはクライアントがこのCOMオブジェクトの使用を終了することを伝えるために用いる。
AddRefとReleaseの戻り値は現在の参照カウントの値であるが、あくまでテスト用を目的としている。
なお、IUnknownのインタフェースIDは、{00000000-0000-0000-C000-000000000046}と定義されている。