Win32 API 日本語リファレンス
ホームSystem.Mmc › ISnapinHelp

ISnapinHelp

COM
IIDa6b15ace-df59-11d0-a7dd-00c04fd909dd継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

スナップインが HTML ヘルプのサポートを追加できるようにします。(ISnapinHelp)

メソッド 1

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT GetHelpTopic(LPWSTR* lpCompiledHelpFile)

スナップインが、コンパイル済みの HTML ヘルプファイルを MMC のヘルプコレクションファイルに追加できるようにします。

lpCompiledHelpFileLPWSTR*outスナップイン用のコンパイル済みヘルプファイル(.chm)のパスを格納した、null 終端の Unicode 文字列のアドレスへのポインター。パスを指定する際は、ファイルを任意の場所に配置し、フルパス名を指定します。

戻り値

このメソッドは、次のいずれかの値を返すことがあります。

解説(Remarks)

MMC は、スナップインのヘルプファイルの場所を取得するために、このメソッドのスナップイン側の実装を呼び出します。MMC は、すべてのスナップインの HTML ヘルプファイルを MMC コンソールの HTML ヘルプコレクションファイルにマージします。

コレクションを表示すると、スナップインのヘルプファイルのトピック階層が目次に表示されます。

HTML ヘルプファイルをマージすることで、MMC は単一の統合された HTML ヘルプの目次、インデックス、および検索機能を作成します。ユーザーがメインの ヘルプ メニューで [Microsoft Management Console のヘルプ] をクリックすると、MMC は現在のコンソールファイル内のすべてのスナップインの HTML ヘルプファイルを含む、マージ済みのヘルプファイルを開きます。

lpCompiledHelpFile 文字列は、COM API 関数 CoTaskMemAlloc(またはそれと同等のもの)で割り当ててください。解放は MMC が行います。

STDMETHODIMP CComponentData::GetHelpTopic( LPOLESTR *lpCompiledFile )
{
    LPOLESTR lpHelpFile;
 
    if ( !lpCompiledFile )
        return E_POINTER; // invalid argument
 
    lpHelpFile = (LPOLESTR) CoTaskMemAlloc( MAX_PATH * sizeof(WCHAR) );
 
    if ( !lpHelpFile )
    {
        return E_OUTOFMEMORY;
    }
 
    ExpandEnvironmentStringsW( L"%SystemRoot%\\Help\\myhelpfile.chm", lpHelpFile, MAX_PATH );
 
    *lpCompiledHelpFile = lpHelpFile;
 
    return S_OK;
}
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_ISnapinHelp "{A6B15ACE-DF59-11D0-A7DD-00C04FD909DD}"
#usecom global ISnapinHelp IID_ISnapinHelp "{}"
#comfunc global ISnapinHelp_GetHelpTopic  3 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。