次の方法で共有


AssocQueryStringA 関数 (shlwapi.h)

レジストリからファイルまたはプロトコルの関連付けに関連する文字列を検索して取得します。

構文

LWSTDAPI AssocQueryStringA(
  [in]            ASSOCF   flags,
  [in]            ASSOCSTR str,
  [in]            LPCSTR   pszAssoc,
  [in, optional]  LPCSTR   pszExtra,
  [out, optional] LPSTR    pszOut,
  [in, out]       DWORD    *pcchOut
);

パラメーター

[in] flags

種類: ASSOCF

検索を制御するために使用できるフラグ。 ASSOCF 値を任意に組み合わせて使用できますが、含めることができるASSOCF_INIT値は 1 つだけです。

[in] str

型: ASSOCSTR

返される文字列の種類を指定する ASSOCSTR 値。

[in] pszAssoc

種類: LPCTSTR

ルート キーを決定するために使用される null で終わる文字列へのポインター。 次の 4 種類の文字列を使用できます。

  1. ファイル名拡張子: .txt などのファイル名拡張子。
  2. CLSID: 標準の "{GUID}" 形式の CLSID GUID。
  3. ProgID: アプリケーションの ProgID (Wordなど)。Document.8
  4. 実行可能ファイル名: アプリケーションの .exe ファイルの名前。 ASSOCF_OPEN_BYEXENAME フラグは flags で設定する必要があります。

[in, optional] pszExtra

種類: LPCTSTR

文字列の場所に関する追加情報を含む、null で終わる省略可能な文字列。 通常、これは open などのシェル動詞に設定 されます。 このパラメーターを使用しない場合は NULL に 設定します。

[out, optional] pszOut

種類: LPTSTR

この関数が正常に返されると、要求された文字列を受け取る null で終わる文字列へのポインター。 必要なバッファー サイズを取得するには、このパラメーターを NULL に設定します。

[in, out] pcchOut

型: DWORD*

関数を呼び出すときに 、pszOut バッファー内の文字数に設定される値へのポインター。 関数が正常に戻ると、値はバッファーに実際に配置された文字数に設定されます。

ASSOCF_NOTRUNCATE フラグが flags に設定されていて、pszOut で指定されたバッファーが小さすぎる場合、関数は E_POINTERを返し、値はバッファーの必要なサイズに設定されます。

pszOutNULL の場合、関数は S_FALSEを返し、pcchOut はバッファーの必要なサイズ (文字数) を指します。

戻り値

型: HRESULT

次のような標準 COM エラー値を返します。

エラー 説明
S_OK 正常終了しました。
E_POINTER pszOut バッファーが小さすぎて文字列全体を保持できません。
S_FALSE pszOutNULL ですpcchOut には、必要なバッファー サイズが含まれています。

注釈

この関数は、 IQueryAssociations インターフェイスの ラッパーです。 AssocQueryString 関数は、IQueryAssociations インターフェイスを使用するプロセスを簡略化することを目的としています。

項目が選択されたら、ホストは、そのアイテムで使用できる (存在する場合) プレビュー ハンドラーを決定する必要があります。 プレビュー ハンドラーは通常、ファイル名拡張子または ProgID に登録されますが、一部のプレビュー ハンドラーは特定のシェル フォルダー内のアイテムに対してのみインスタンス化されます (MAPI プレビュー ハンドラーは、MAPI シェル フォルダーから取得されたアイテムに関連付けられます)。 そのため、ホストは IQueryAssociations を使用して、使用するプレビュー ハンドラーを決定する必要があります。 ファイルとプロトコルの関連付け関数のしくみの詳細については、「 IQueryAssociations」を参照してください。

注意

shlwapi.h ヘッダーは、ASsocQueryString をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional、Windows XP [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー shlwapi.h
Library Shlwapi.lib
[DLL] Shlwapi.dll (バージョン 5.0 以降)