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值。
[in] str
類型: ASSOCSTR
ASSOCSTR 值,指定要傳回的字串類型。
[in] pszAssoc
類型: LPCTSTR
用來判斷根索引鍵之 Null 終止字串的指標。 您可以使用下列四種類型的字串。
- 擴展名:擴展名,例如 .txt。
- CLSID:標準 “{GUID}” 格式的 CLSID GUID。
- ProgID:應用程式的 ProgID,例如 Word。Document.8.
- 可執行檔名稱:應用程式 .exe 檔的名稱。 ASSOCF_OPEN_BYEXENAME旗標必須在旗標中設定。
[in, optional] pszExtra
類型: LPCTSTR
選擇性的 Null 終止字串,包含字串位置的其他資訊。 它通常會設定為Shell動詞命令,例如 open。 如果未使用此參數,請將此參數設定為 NULL 。
[out, optional] pszOut
類型: LPTSTR
Null 終止字串的指標,當此函式成功傳回時,會收到要求的字串。 將此參數設定為 NULL ,以擷取所需的緩衝區大小。
[in, out] pcchOut
類型: DWORD*
呼叫函式時,值指標會設定為 pszOut 緩衝區中的字元數。 當函式成功傳回時,值會設定為實際放置在緩衝區中的字元數。
如果 ASSOCF_NOTRUNCATE 旗標是在 旗標 中設定,而 pszOut 中指定的緩衝區太小,則函式會傳回E_POINTER,並將值設定為所需的緩衝區大小。
如果 pszOut 為 NULL,函式會傳回S_FALSE, 而pcchOut 會指向緩衝區所需的大小,以字元為單位。
傳回值
類型: HRESULT
傳回標準 COM 錯誤值,包括下列專案:
錯誤 | 意義 |
---|---|
S_OK | 成功。 |
E_POINTER | pszOut 緩衝區太小,無法保存整個字串。 |
S_FALSE | pszOut 為 NULL。 pcchOut 包含所需的緩衝區大小。 |
備註
此函式是 IQueryAssociations 介面的包裝函式。 AssocQueryString 函式旨在簡化使用 IQueryAssociations 介面的程式。
選取項目之後,主機必須決定該專案是否有任何) 預覽處理程式可供 (。 預覽處理程式通常會在擴展名或 ProgID 上註冊,但某些預覽處理程式只會針對特定殼層資料夾中的專案具現化, (MAPI 預覽處理程式與來自 MAPI Shell 資料夾的任何專案相關聯,例如) 。 因此,主機必須使用 IQueryAssociations 來判斷要使用的預覽處理程式。 如需檔案和通訊協議關聯函式運作方式的進一步討論,請參閱 IQueryAssociations。
注意
shlwapi.h 標頭會將 AssocQueryString 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional、Windows XP [僅限桌面應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | shlwapi.h |
程式庫 | Shlwapi.lib |
Dll | Shlwapi.dll (5.0 版或更新版本) |