Share via


AssocQueryStringByKeyA 函式 (shlwapi.h)

從指定的機碼開始,搜尋並擷取登錄中的檔案關聯相關字串。

語法

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

參數

[in] flags

類型: ASSOCF

可用來控制搜尋的旗標。 它可以是 ASSOCF 值的任何組合,不同之處在於只能包含一個ASSOCF_INIT值。

[in] str

類型: ASSOCSTR

ASSOCSTR 值,指定要傳回的字串類型。

[in] hkAssoc

類型: HKEY

將做為根索引鍵之索引鍵的 HKEY 值。 搜尋只會在此機碼下方查看。

[in, optional] pszExtra

類型: LPCTSTR

選擇性 Null 終止字串的指標,其中包含字串位置的其他資訊。 它通常會設定為Shell動詞動詞,例如 開啟。 如果未使用此參數,請將此參數設定為 NULL

[out, optional] pszOut

類型: LPTSTR

用來傳回所要求字串之 Null 終止字串的指標。 將此參數設定為 NULL ,以擷取所需的緩衝區大小。

[in, out] pcchOut

類型: DWORD*

在專案上指定 pszOut 緩衝區中字元數的值指標。 函式傳回時,它會指向緩衝區中放置的字元數。

如果 ASSOCF_NOTRUNCATE 旗標是在 標中設定,而 pszOut 中指定的緩衝區太小,則函式會傳回E_POINTER,且該值會設定為所需的緩衝區大小。

如果 pszOutNULL,函式會傳回S_FALSE, 而pcchOut 會指向所需的緩衝區大小。

傳回值

類型: HRESULT

傳回標準 COM 錯誤值,包括下列專案:

錯誤 意義
S_OK 成功。
E_POINTER pszOut 緩衝區太小,無法保存整個字串。
S_FALSE pszOutNULLpcchOut 包含所需的緩衝區大小。

備註

此函式是 IQueryAssociations 介面的 包裝函式。 其旨在簡化使用此介面的程式。 如需檔案關聯函式運作方式的進一步討論,請參閱 IQueryAssociations

注意

shlwapi.h 標頭會根據 UNICODE 預處理器常數的定義,將 AssocQueryStringByKey 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

需求
最低支援的用戶端 Windows 2000 專業版、Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 shlwapi.h
程式庫 Shlwapi.lib
Dll Shlwapi.dll (5.0 版或更新版本)