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