わびさびサンプルソース

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

エラーコードの変換

COM系の関数、Win32系の関数でエラーコードが違っていて、 戻り値を返すのに苦労したことはありませんか、HRESULT_FROM_WIN32 マクロを使うと、dwResultと::GetLasterr()の値をHRESULTに変換す る事が可能です。

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



/*
	エラーテスト
*/
HRESULT Test
(
)
{
	// Win32系APIの呼び出し
	if ( 0 == Win32関数() ) {

		// エラー
		return( HREULT_FROM_WIN32( ::GetLastErr ) );
	}


	// dwResult系APIの呼び出し
	DWORD dwResult = dwResultが返ってくる関数();
	if ( FAILED( dwResult ) ) {

		// エラー
		return( HREULT_FROM_WIN32( dwResult ) );
	}

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



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

	// エラーテスト
	Test();

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

実行結果








わびさびサンプルソース

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