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 );
}