반응형

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가 진행하던 작업을 취소시키는 의미를 가

 

질 때도 있다.

반응형

+ Recent posts