IMFAttributes::GetString 方法 (mfobjects.h)

擷取與索引鍵相關聯的寬字元字串。

語法

HRESULT GetString(
  [in]  REFGUID guidKey,
  [out] LPWSTR  pwszValue,
  [in]  UINT32  cchBufSize,
  [out] UINT32  *pcchLength
);

參數

[in] guidKey

識別要擷取之值的 GUID。 屬性類型必須 MF_ATTRIBUTE_STRING

[out] pwszValue

呼叫端所配置的寬字元陣列指標。 數位必須夠大,才能保存字串,包括終止 的NULL 字元。 如果找到索引鍵,且值為字串類型,則方法會將字串複製到這個緩衝區。 若要尋找字串的長度,請呼叫 IMFAttributes::GetStringLength

[in] cchBufSize

pwszValue 陣列的大小,以字元為單位。 此值包含終止的NULL字元。

[out] pcchLength

接收字串中的字元數,不包括終止 的NULL 字元。 此參數可以是 Null

傳回值

方法會傳回 HRESULT。 可能的值包括 (但不限於) 下表中的這些值。

傳回碼 描述
S_OK
此方法已成功。
E_OUTOFMEMORY
字串的長度太大,無法容納 UINT32 值。
E_NOT_SUFFICIENT_BUFFER
緩衝區不夠大,無法保存字串。
MF_E_ATTRIBUTENOTFOUND
找不到指定的索引鍵。
MF_E_INVALIDTYPE
屬性值不是字串。

備註

您也可以使用 IMFAttributes::GetAllocatedString 方法,這個方法會配置緩衝區來保存字串。

如果已安裝 Windows Media Format 11 SDK 可轉散發元件,此介面可在下列平臺上使用:

  • Windows XP with Service Pack 2 (SP2) 和更新版本。
  • 已安裝 Windows XP Media Center Edition 2005 KB900325 (Windows XP Media Center 版本 2005) 和 KB925766 (2006 年 10 月更新匯總) 。

範例

下列程式代碼範例示範如何取得其值為字串的屬性。

HRESULT AttributeGetString(IMFAttributes *pAttributes)
{
    HRESULT hr = S_OK;
    UINT32 cchLength = 0;
    WCHAR *pString = NULL;

    hr = pAttributes->GetStringLength(MY_ATTRIBUTE, &cchLength);
    
    if (SUCCEEDED(hr))
    {
        pString = new WCHAR[cchLength + 1];
        if (pString == NULL)
        {
            hr = E_OUTOFMEMORY;
        }
    }

    if (SUCCEEDED(hr))
    {
        hr = pAttributes->GetString(
            MY_ATTRIBUTE, pString, cchLength + 1, &cchLength);
    }

    if (pString)
    {
        delete [] pString;
    }
    return hr;
}

規格需求

需求
最低支援的用戶端 Windows Vista [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 mfobjects.h (include Mfidl.h)
程式庫 Mfuuid.lib

另請參閱

屬性和屬性

IMFAttributes

MF_ATTRIBUTE_TYPE