IMFAttributes::GetString-Methode (mfobjects.h)
Ruft eine Breitzeichenzeichenfolge ab, die einem Schlüssel zugeordnet ist.
Syntax
HRESULT GetString(
[in] REFGUID guidKey,
[out] LPWSTR pwszValue,
[in] UINT32 cchBufSize,
[out] UINT32 *pcchLength
);
Parameter
[in] guidKey
GUID, die den abzurufenden Wert identifiziert. Der Attributtyp muss MF_ATTRIBUTE_STRING sein.
[out] pwszValue
Zeiger auf ein Breitzeichenarray, das vom Aufrufer zugewiesen wird. Das Array muss groß genug sein, um die Zeichenfolge zu enthalten, einschließlich des beendenden NULL-Zeichens. Wenn der Schlüssel gefunden wird und der Wert ein Zeichenfolgentyp ist, kopiert die Methode die Zeichenfolge in diesen Puffer. Um die Länge der Zeichenfolge zu ermitteln, rufen Sie IMFAttributes::GetStringLength auf.
[in] cchBufSize
Die Größe des pwszValue-Arrays in Zeichen. Dieser Wert enthält das beendende NULL-Zeichen.
[out] pcchLength
Empfängt die Anzahl der Zeichen in der Zeichenfolge, ausgenommen das beendende NULL-Zeichen . Dieser Parameter kann NULL sein.
Rückgabewert
Die Methode gibt ein HRESULT zurück. Mögliches Werte (aber nicht die Einzigen) sind die in der folgenden Tabelle.
Rückgabecode | BESCHREIBUNG |
---|---|
|
Die Methode wurde erfolgreich ausgeführt. |
|
Die Länge der Zeichenfolge ist zu groß, um in einen UINT32-Wert zu passen. |
|
Der Puffer ist nicht groß genug, um die Zeichenfolge aufzunehmen. |
|
Der angegebene Schlüssel wurde nicht gefunden. |
|
Der Attributwert ist keine Zeichenfolge. |
Hinweise
Sie können auch die IMFAttributes::GetAllocatedString-Methode verwenden, die den Puffer für die Zeichenfolge zuordnet.
Diese Schnittstelle ist auf den folgenden Plattformen verfügbar, wenn die verteilbaren Windows Media Format 11 SDK-Komponenten installiert sind:
- Windows XP mit Service Pack 2 (SP2) und höher.
- Windows XP Media Center Edition 2005 mit KB900325 (Windows XP Media Center Edition 2005) und KB925766 (Updaterollup für Windows XP Media Center Edition vom Oktober 2006) installiert.
Beispiele
Das folgende Codebeispiel zeigt, wie Sie ein Attribut abrufen, dessen Wert eine Zeichenfolge ist.
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;
}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | mfobjects.h (include Mfidl.h) |
Bibliothek | Mfuuid.lib |