일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 식의 설명
- SetMouseDelay
- API
- Menu
- autohotkey
- SetControlDelay
- EnvMult
- ControlGetText
- IfWinExist
- Var:=식
- MouseClick
- IF (식)
- SetEnv
- IfInString
- EnvAdd
- SetTitleMatchMode
- 배열
- if
- Threads
- ControlSend
- 식
- EnvDiv
- DetectHiddenWindows
- Blocks
- SetKeyDelay
- EnvSub
- EnvSet
- if(식)
- 함수
- StringGetPos
- Today
- Total
ㄴrㅎnㅂrㄹrㄱi
IUnknown::QueryInterface 본문
IUnknown::QueryInterface
오브젝트가 특정의 인터페이스를 서포트하고 있는지를 식별합니다.지정된 인터페이스가 서포트되고 있었을 경우는, 오브젝트의 참조 카운트를 인크리먼트(increment)(1 만 증가) 합니다.
HRESULT QueryInterface( REFIID iid, // 인터페이스ID void **ppvObject // 인터페이스 포인터의 주소 );
메소드의 인덱스: 0
파라미터
- iid
-
요구하는 인터페이스의 참조 식별자(인터페이스 ID )(을)를 지정합니다.
- ppvObject
-
목적의 인터페이스가 서포트되고 있었을 경우에, 인터페이스에의 포인터가 격납되는 포인터 변수의 주소를 지정합니다.오브젝트가 iid 파라미터로 지정된 인터페이스를 서포트하고 있지 않는 경우에는, 이 변수에 0 (NULL) 하지만 격납됩니다.
반환값
성공하면 0x00000000 (S_OK) (을)를 돌려줍니다.
실패하면 0x80004002 (E_NOINTERFACE) 또는 0x80004003 (E_POINTER) 하지만 돌아갑니다.또, 컴퍼넌트에 따라서는 독자적인 에러치를 돌려주는 경우가 있습니다.
해설
QueryInterface 메소드는, 오브젝트가 가지는 것 외의 인터페이스에 클라이언트를 액세스 할 수 있도록(듯이) 합니다.
있다1개의 오브젝트에 대해서, 그 오브젝트의 어느 인터페이스로부터의 IUnknown 인터페이스에의 문의도, 항상 같은 포인터치를 돌려줍니다.이것에 의해, 클라이언트는,2개의 인터페이스 포인터가 같은 컴퍼넌트를 가리키고 있는지 어떤지를, 양쪽 모두의 인터페이스로부터 QueryInterface (을)를 호출해, 돌려주어졌다 IUnknown 인터페이스 포인터를 비교하는 것에 의해서 결정할 수 있습니다. IUnknown 이외의 인터페이스에의 문의는, (비록 동일한 인터페이스 포인터로부터, 같은 인터페이스에의 문의의 경우여도) 같은 포인터치를 돌려주는 것은 보증되고 있지 않습니다.
이 메소드 호출에 의해서 취득된 인터페이스를 사용하지 않게 되었을 경우에는, Release 메소드를 호출해 인터페이스를 해방하지 않으면 안됩니다.
대응 정보
Windows 95 이후 / Windows NT 3.1 이후
'Ntool Works > 작업 참조' 카테고리의 다른 글
IUnknown::AddRef (0) | 2007.11.09 |
---|---|
IUnknown::Release (0) | 2007.11.09 |
IUnknown (0) | 2007.11.09 |
IMalloc (0) | 2007.11.09 |
CSIDL 치 (0) | 2007.11.09 |