2013年6月26日水曜日

システムプロファイルバージョンの変更:

To Change System Profile Versions
/*
空のCLRプロジェクト
*/

#include <stdio.h>  //printf とかで必要
#include <wmsdk.h>  //HRESULT とかで必要

#pragma comment(lib, "wmvcore.lib")   //IWMMetadataEditor とかで必要
#pragma comment ( lib, "ole32.lib" )//CoInitialize で必要

using namespace System;//Console::ReadLine()で必要

#ifndef SAFE_RELEASE
#define SAFE_RELEASE(x) \
 if(x != NULL)        \
{                    \
 x->Release();     \
 x = NULL;         \
}
#endif

int main(void)
{

 HRESULT hr = S_OK;

 IWMProfileManager*  pProfileMgr  = NULL;
 IWMProfileManager2* pProfileMgr2 = NULL;

 WMT_VERSION         profileVersion;

 // Initialize COM.
 //hr = CoInitialize(NULL);
 /*if(FAILED(hr))
 {
 printf("Could not initialize COM.");
 return 0;
 }*/

 // Create a profile manager object.
 // プロファイルマネージャオブジェクトを作成します。
 hr = WMCreateProfileManager(&pProfileMgr);
 if(FAILED(hr))
 {
  printf("Could not create a profile manager object.");
  return 0;
 }

 // Get the IWMProfileManager2 interface.
 // IWMProfileManager2インタフェースを取得します。
 hr = pProfileMgr->QueryInterface(IID_IWMProfileManager2, 
  (void**) &pProfileMgr2);
 if(FAILED(hr))
 {
  printf("Could not get the IWMProfileManager2 interface.");
  SAFE_RELEASE(pProfileMgr);
  return 0;
 }

 // Release the old interface.
 // 古いインターフェースを解放します。
 SAFE_RELEASE(pProfileMgr);

 // Get the current system profile version.
 // 現在のシステムプロファイルバージョンを取得
 hr = pProfileMgr2->GetSystemProfileVersion(&profileVersion);
 if(FAILED(hr))
 {
  printf("Could not retrieve profile version.");
  printf("\nError code: 0x%X\n", hr);
  SAFE_RELEASE(pProfileMgr2);
  return 0;
 }

 // Display the current version.
 // 現在のバージョンを表示します。
 printf("Current version: ");
 switch(profileVersion)
 {
 case WMT_VER_4_0:
  printf("WMT_VER_4_0\n");
  break;
 case WMT_VER_7_0:
  printf("WMT_VER_7_0\n");
  break;
 case WMT_VER_8_0:
  printf("WMT_VER_8_0\n");
  break;
 case WMT_VER_9_0:
  printf("WMT_VER_9_0\n");
  break;
 }

 // Set the system profile version to 8.
 // システムプロファイルをバージョン8に設定
 profileVersion = WMT_VER_8_0;

 hr = pProfileMgr2->SetSystemProfileVersion(profileVersion);
 if(FAILED(hr))
 {
  printf("Could not change profile version.");
  printf("\nError code: 0x%X\n", hr);
  SAFE_RELEASE(pProfileMgr2);
  return 0;
 }

 // Print verification.
 printf("Successfully set version to ");
 switch(profileVersion)
 {
 case WMT_VER_4_0:
  printf("WMT_VER_4_0\n");
  break;
 case WMT_VER_7_0:
  printf("WMT_VER_7_0\n");
  break;
 case WMT_VER_8_0:
  printf("WMT_VER_8_0\n");
  break;
 case WMT_VER_9_0:
  printf("WMT_VER_9_0\n");
  break;
 }

 printf("-------------プログラム終了----------------");
 Console::ReadLine();//入力待-ウインドウ維持
}


0 件のコメント:

コメントを投稿