IWMReaderAdvanced2::GetProtocolName method

The GetProtocolName method retrieves the name of the protocol that is being used.


HRESULT GetProtocolName(
  [out]     WCHAR *pwszProtocol,
  [in, out] DWORD *pcchProtocol


pwszProtocol [out]

Pointer to a buffer that receives a string containing the protocol name. Pass NULL to retrieve the length of the name.

pcchProtocol [in, out]

On input, pointer to a variable containing the length of pwszProtocol, in characters. On output, the variable contains the length of the name, including the terminating null character.

Return value

The method returns an HRESULT. Possible values include, but are not limited to, those in the following table.

Return codeDescription

The method succeeded.


The buffer is too small.


The protocol has not been determined, or no file is open.


The pcchProtocol parameter is NULL.



You should make two calls to GetProtocolName. On the first call, pass NULL for pwszProtocol. On return, the value pointed to by pcchProtocol is set to the number of wide characters, including the terminating null, required to hold the protocol name. Then you can allocate the required amount of memory for the string and pass a pointer to it as pwszProtocol on the second call.

The protocol name is a URL scheme, such as mmsu, http, or file. However, the protocol name can differ from the URL scheme specified in IWMReader::Open, because the reader object might use protocol rollover to find the best protocol. Also, the returned string might be "File" for local file content, or "Cache" for content saved in the cache.

This method can return an empty string if the protocol name cannot be determined.


Minimum supported client

Windows 2000 Professional [desktop apps only]

Minimum supported server

Windows 2000 Server [desktop apps only]


Windows Media Format 7 SDK, or later versions of the SDK


Wmsdkidl.h (include Wmsdk.h)


WMStubDRM.lib (if you use DRM)

See also

IWMReaderAdvanced2 Interface