For complete code, refer to the CNVWM demo.
LPTSTR OLE2A(LPCOLESTR lpw) { static CHAR convert[512]; if(!lpw) return NULL; convert[0] = '\0'; WideCharToMultiByte(CP_ACP, 0, lpw, -1, convert, 512, NULL, NULL); return convert; } void IltmmWMProfile_GetStream_Example (IltmmWMProfile *pProfile) { IltmmWMStreamConfig *pStreamConfig = NULL; BSTR bstrString; long lStreamCount; int i; long lValue; double fValue; char temp[50]; // Show all the information regarding the streams IltmmWMProfile_get_StreamCount(pProfile, &lStreamCount); for(i=0; i<lStreamCount; i++) { IltmmWMProfile_GetStream(pProfile, i, &pStreamConfig); sprintf(temp, "[[ Stream %d ]]\n", i); printf(temp); // Get the major type of the stream IltmmWMStreamConfig_get_StreamType(pStreamConfig, &bstrString); printf("Stream type : "); printf(OLE2A(bstrString)); printf("\n"); SysFreeString(bstrString); // Get Stream number IltmmWMStreamConfig_get_StreamNumber(pStreamConfig, &lValue); printf("Stream number : "); printf(ltoa(lValue, temp, 10)); printf("\n"); // Get Stream name IltmmWMStreamConfig_get_StreamName(pStreamConfig, &bstrString); printf("Stream name : "); printf(OLE2A(bstrString)); printf("\n"); SysFreeString(bstrString); // Get Connection name IltmmWMStreamConfig_get_ConnectionName(pStreamConfig, &bstrString); printf("Stream connection name : "); printf(OLE2A(bstrString)); printf("\n"); SysFreeString(bstrString); // Get Bitrate IltmmWMStreamConfig_get_Bitrate(pStreamConfig, &lValue); printf("Stream bitrate : "); printf(ltoa(lValue, temp, 10)); printf("\n"); // Get the maximum latency (time in milliseconds) between stream reception and display IltmmWMStreamConfig_get_BufferWindow(pStreamConfig, &lValue); printf("Stream buffer window : "); printf(ltoa(lValue, temp, 10)); printf("\n"); // Get the major type of the media in the stream IltmmWMStreamConfig_get_Type(pStreamConfig, &bstrString); printf("Major type of the stream media : "); printf(OLE2A(bstrString)); printf("\n"); SysFreeString(bstrString); // Get the maximum key frame time interval (in 100-nano seconds) IltmmWMStreamConfig_get_MaxKeyFrameSpacing(pStreamConfig, &fValue); printf("Maximum key frame time interval : "); sprintf(temp, "%.Ef", fValue); printf(temp); printf("\n"); // Get the Quality, range from 0 to 100 // where zero denotes maximum frame rate and 100 denotes maximum quality. IltmmWMStreamConfig_get_Quality(pStreamConfig, &lValue); printf("Stream quality : "); printf(ltoa(lValue, temp, 10)); if(lValue == -1) printf(" ...(Unknown)"); printf("\n\n"); IltmmWMStreamConfig_Release(pStreamConfig); } IltmmWMProfile_Release(pProfile); }