わびさびサンプルソース

WindowsやHTML5などのプログラムのサンプルコードやフリーソフトを提供します。

dwResultをHRESUTへ変換する

COMのエラーコードdwResultをHRESUTへ変換します。 具体的にはERROR_ACCESS_DENIEDならE_ACCESSDENIEDへ変換されます。

#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include <windows.h>



/*
	dwResultをHRESUTへ変換する
*/
int _tmain
(
	  int argc
	, _TCHAR* argv[]
)
{
	// 標準出力にユニコード出力する
	setlocale( LC_ALL, "Japanese" );

	// エラーコード(DWORD)
	DWORD dwResult = ERROR_ACCESS_DENIED;

	// dwResult(COMのエラー)をHRESULTへ変換する
	HRESULT hResult = HRESULT_FROM_WIN32( dwResult );


	/*
		hResultを文字列へ変換して出力
	*/
	{
		TCHAR* lpMessageBuffer = NULL;

		// hResultを文字列へ変換する
		if ( 0 != FormatMessage(
				  FORMAT_MESSAGE_ALLOCATE_BUFFER
				| FORMAT_MESSAGE_FROM_SYSTEM
				| FORMAT_MESSAGE_IGNORE_INSERTS
				, NULL
				, ERROR_ACCESS_DENIED//hResult
				, MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ) // デフォルト ユーザー言語 
				, (LPTSTR)&lpMessageBuffer
				, 0
				, NULL
				) ) {

			// エラーを文字列変換してものを出力
			std::wcout << lpMessageBuffer << std::endl;

			// システムによって確保されたバッファを開放します。
			LocalFree( lpMessageBuffer );
		}
	}

	// 正常終了
	return( 0 );
}



実行結果

アクセスが拒否されました。






わびさびサンプルソース

WindowsやHTML5などのプログラムのサンプルコードやフリーソフトを提供します。