IltmmWMProfile::get_Version Example for C
For complete code, refer to the CNVWM demo.
BOOL DisplaySystemProfiles()
{
// ATL Macro
USES_CONVERSION;
long count = 0;
long streamCount = 0;
long versionNum = 0;
long lVersion;
char data[10];
IltmmWMProfile *pProfile = NULL;
IltmmWMProfileManager *pProfileManager = NULL;
BSTR bstrString;
int i;
// Create a profile manager
HRESULT hr = CoCreateInstance(&CLSID_ltmmWMProfileManager, NULL, CLSCTX_INPROC_SERVER, &IID_IltmmWMProfileManager, (void**) &pProfileManager);
if(FAILED(hr))
{
return TRUE;
}
// show only system profiles for version ltmmWMT_VER_4_0
IltmmWMProfileManager__get_SystemProfileVersion(pProfileManager, &lVersion);
if(lVersion != ltmmWMT_VER_4_0)
{
IltmmWMProfileManager_Release(pProfileManager);
return TRUE;
}
hr = IltmmWMProfileManager__get_SystemProfileCount(pProfileManager, &count);
if(FAILED(hr))
{
IltmmWMProfileManager_Release(pProfileManager);
return TRUE;
}
for(i = 0; i < count; i++)
{
hr = IltmmWMProfileManager_LoadSystemProfile(pProfileManager, i, &pProfile);
if(FAILED(hr))
{
IltmmWMProfileManager_Release(pProfileManager);
return TRUE;
}
// Display the name
IltmmWMProfile__get_Name(pProfile, &bstrString);
cout << OLE2A(bstrString);
SysFreeString(bstrString);
// Add the description, version and the stream count
IltmmWMProfile__get_Description(pProfile, &bstrString);
cout << OLE2A(bstrString);
SysFreeString(bstrString);
IltmmWMProfile__get_Version(pProfile, &versionNum);
switch(versionNum)
{
case ltmmWMT_VER_4_0:
cout << "ltmmWMT_VER_4_0";
break;
case ltmmWMT_VER_7_0:
cout << "ltmmWMT_VER_7_0";
break;
case ltmmWMT_VER_8_0:
cout << "ltmmWMT_VER_8_0";
break;
case ltmmWMT_VER_9_0:
cout << "ltmmWMT_VER_9_0";
break;
default:
cout << "UNKNOWN";
break;
};
// Display the number of streams
IltmmWMProfile__get_StreamCount(pProfile, &streamCount);
cout << ltoa(streamCount, data, 10);
IltmmWMProfile_Release(pProfile);
pProfile = NULL;
}
IltmmWMProfileManager_Release(pProfileManager);
pProfileManager = NULL;
return TRUE;
}
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; } L_MULTIMEDIATEX_API BOOL IltmmWMProfile_get_Version_Example ( ) { long count = 0; long streamCount = 0; long versionNum = 0; long lVersion; char data[10]; IltmmWMProfile *pProfile = NULL; IltmmWMProfileManager *pProfileManager = NULL; BSTR bstrString; int i; // Create a profile manager HRESULT hr = CoCreateInstance(&CLSID_ltmmWMProfileManager, NULL, CLSCTX_INPROC_SERVER, &IID_IltmmWMProfileManager, (void**) &pProfileManager); if(FAILED(hr)) { return TRUE; } // show only system profiles for version ltmmWMT_VER_4_0 IltmmWMProfileManager_get_SystemProfileVersion(pProfileManager, &lVersion); if(lVersion != ltmmWMT_VER_4_0) { IltmmWMProfileManager_Release(pProfileManager); return TRUE; } hr = IltmmWMProfileManager_get_SystemProfileCount(pProfileManager, &count); if(FAILED(hr)) { IltmmWMProfileManager_Release(pProfileManager); return TRUE; } for(i = 0; i < count; i++) { hr = IltmmWMProfileManager_LoadSystemProfile(pProfileManager, i, &pProfile); if(FAILED(hr)) { IltmmWMProfileManager_Release(pProfileManager); return TRUE; } // Display the name IltmmWMProfile_get_Name(pProfile, &bstrString); printf ("%s", OLE2A(bstrString)); SysFreeString(bstrString); // Add the description, version and the stream count IltmmWMProfile_get_Description(pProfile, &bstrString); printf ("%s", OLE2A(bstrString)); SysFreeString(bstrString); IltmmWMProfile_get_Version(pProfile, &versionNum); switch(versionNum) { case ltmmWMT_VER_4_0: printf ("%s", "ltmmWMT_VER_4_0"); break; case ltmmWMT_VER_7_0: printf ("%s", "ltmmWMT_VER_7_0"); break; case ltmmWMT_VER_8_0: printf ("%s", "ltmmWMT_VER_8_0"); break; case ltmmWMT_VER_9_0: printf ("%s", "ltmmWMT_VER_9_0"); break; default: printf ("%s", "UNKNOWN"); break; }; // Display the number of streams IltmmWMProfile_get_StreamCount(pProfile, &streamCount); printf ("%s", ltoa(streamCount, data, 10)); IltmmWMProfile_Release(pProfile); pProfile = NULL; } IltmmWMProfileManager_Release(pProfileManager); pProfileManager = NULL; return TRUE; }