DirectX 9.0 의 소개 DirectX SDK 의 사용법 C 또는 C++ 에 의한 DirectX 프로그래밍 COM 의 사용법 매크로에 의한 DirectX COM 메서드의 호출   [목차열람] [주소복사] [슬롯비우기]
매크로에 의한 DirectX COM 메서드의 호출
 
Microsoft DirectX 9.0

매크로에 의한 DirectX COM 메서드의 호출


Microsoft® DirectX® 구성 요소 개체 모델 (COM) 인터페이스가 많게는, 애플리케이션으로 보다 간단하게 메서드를 사용할 수 있도록(듯이), 각 메서드용으로 정의된 매크로가 준비되어 있다. 이러한 매크로는, 인터페이스의 선언과 같은 헤더 파일로 정의되고 있다. 매크로는, C 와 C++ 의 양쪽 모두의 애플리케이션으로 사용할 수 있도록(듯이) 설계되고 있다. C++ 매크로를 사용하려면 , _cplusplus 를 정의할 필요가 있다. 이것을 정의하지 않는 경우는, C 매크로가 사용된다. 매크로의 구문은 어느 쪽의 언어에서도 같지만, 헤더 파일에 포함되는 일련의 매크로 정의는 달라, 각각의 적절한 호출 표기에 맞추어 확장되고 있다.

예를 들어, d3d.h 헤더 파일내의 다음 코드에서는,IDirect3D9::GetAdapterIdentifier 메서드에 대한 C 와 C++ 양쪽 모두의 매크로가 정의되고 있다.

...
#define IDirect3D9_GetAdapterIdentifier(p, a, b, c) (p) ->lpVtbl->GetAdapterIdentifier(p, a, b, c)
...
#else
...
#define IDirect3D9_GetAdapterIdentifier(p, a, b, c) (p) ->GetAdapterIdentifier(a, b, c)
...
#endif

이러한 매크로의 어느쪽이든을 사용하려면 , 우선, 관련지을 수 있는 인터페이스의 포인터를 얻어올 필요가 있다. 매크로의 최초의 파라미터에, 이 포인터를 설정한다. 그 외의 파라미터는, 메서드의 파라미터에 맵 된다. 매크로의 반환값은, 메서드가 돌려주는 HRESULT 값이다. 다음 코드는, 매크로를 사용해 IDirect3D9::GetAdapterIdentifier 메서드를 호출하고 있다. 여기서,pD3D 는,IDirect3D9 인터페이스의 포인터를 나타낸다.

hr = IDirect3D9_GetAdapterIdentifier(pD3D,
                                     Adapter,
                                     dwFlags,
                                     pIdentifier);									 
									 


© 2002 Microsoft Corporation. All rights reserved.
↑TOP