http://blog.naver.com/ljyhs?Redirect=Log&logNo=30014607134
HRESULT는 32비트 signed 형 정수이다.
COM의 규정에 의한 것은 아니지만, COM 인터페이스에 소속된 대부분의 함수들은 HRESULT
형태의 반환값을 사용한다. 그러나, 이렇게 대부분의 COM 인터페이스에 소속된 함수들이 반
환형으로 HRESULT를 사용함으로써 클라이언트에게 일관성 있는 함수의 상태 정보를 전달 할
수 있게 된다. 이 반환 값을 사용하기 위해서는 SUCCEEDED나 FAILED 매크로 를 사용해야
한다.
* HRESULT 형의 구조
0~15 비트 : RETURN CODE
16~28 비트 : FACILITY
29~30 비트 : R
31 비트 : SEVERITY ( SEVERITY(31비트)는 함수의 수행의 성공과 실패를 알려주는 코드다.)
* HRESULT의 상태 정보 요약.
S_OK : 때때로 Boolean TRUE 값(0X0)으로 S_FALSE와 함께 사용되며 함수가 성공하였음을 의미한다.
NOERROR : S_OK와 동일한 의미이다.
S_FALSE : S_OK와 반대로 Boolean FALSE 값(0X1)으로 함수가 실폐하였음을 의미한다.
E_UNEXPRCTED : 치명적인 실패를 의미한다.
E_NOTIMPL : 멤버 함수에 구현 코드가 포함되어 있지 않다.
E_OUTOFMEMORY : 필요한 메모리를 할당할 수 없음
E_INVALIDARG : 하나 혹은 그 이상의 인자가 타당하지 않음
E_NOINTERFACE : 요청한 인터페이스를 지원하지 않음
E_POINTER : 타당하지 않은 포인터
E_HANDLE : 타당하지 않은 처리
E_ABORT : 작동 중지
E_FAIL : 특정하지 않은 실패
E_ACCESSDENIED : 일반적 접근이 금지된 에러
부분출처 : www.pnteam.net/419
///////////////////////////////////////////////////////////////////////////////////
LRESULT 은 long 형 타입으로서, WIn32 환경에서 메시지 처리를 마친 후 O/S에게 어떤 신호
를 주기 위해 사용되는 값이다.
각각의 메시지 case에 대한 처리 값이 때로는 단순히 -1, 0, 1등으로 어떨때는 비트 플래그로
O/S가 알 수 있도록 설정한다.
대부분의 경우 0을 리턴하면 내가 모든 메시지를 처리할테니 O/S는 더이상 메시지에 대한 처
리를 하지 말라는 것으로 인식, 간혹 -1의 경우 O/S가 진행하던 작업을 취소시키는 의미를 가
질 때도 있다.
[출처] HRESULT / LRESULT 의 정리|작성자 이노센트
'프로그래밍(Programming) > c++, 11, 14 , 17, 20' 카테고리의 다른 글
다시 수행했을때 중복되지 않는 난수발생 CryptGenRandom (0) | 2012.11.01 |
---|---|
SendMessage와 PostMessage SendMessage()의 응용 WPARAM과 LPARAM의 역할 (0) | 2012.11.01 |
경로 설정 GetCurrentDirectory() / SetCurrentDirectory() (0) | 2012.11.01 |
inline keyword 와 inl file (0) | 2012.11.01 |
암시적 타입 변환( Implicit Type Casting ) (0) | 2012.11.01 |