|
핸들맨 님이 쓰신 글 :
: 몇 일전에 질문한 내용의 답변을 보려 왔는데
: 서버 이상이 있으면서 답변 데이터까지 유실된거 같더군요.
: 어떤 분께서 답변을 달아주셨던데 아깝게도 볼 수가 없습니다.
: 번거롭더라도 한 번 더 부탁합니다.
: 감사합니다.
: 그럼..
헤더 파일들을 보면 아래와 같습니다.
1. STRICT 정의 여부와는 상관 없이 HANDLE은 void* 형입니다.
2. STRICT가 정의되어 있지 않으면 HWND는 HANDLE과 같은 void* 형입니다.
정의되어 있으면 HWND는 아래와 같은 형이 됩니다.
struct HWND__
{
int unused;
};
typedef HWND__ *HWND;
즉 HWND는 HWND__ 구조체를 가리키는 포인터 형이 됩니다.
헤더 파일들의 내용:
__property HWND Handle = {read=GetHandle, nodefault};
typedef void *PVOID;
#ifdef STRICT
typedef void *HANDLE;
#define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name
#else
typedef PVOID HANDLE;
#define DECLARE_HANDLE(name) typedef HANDLE name
#endif
typedef HANDLE *PHANDLE;
#ifndef WIN_INTERNAL
DECLARE_HANDLE (HWND);
DECLARE_HANDLE (HHOOK);
#ifdef WINABLE
DECLARE_HANDLE (HEVENT);
#endif
#endif
|