C ++ ATL 회원 가변 액세스 도움말
문제
나는 이것에 익숙하지 않으며 킥 스타트를 사용할 수 있습니다.
ATL (관리되지 않은 C ++) 사용자 컨트롤을 사용하고 있으며 Shockwave ActiveX 객체를 사용하고 싶습니다. 속성을 설정하거나 메소드를 호출 할 수 있도록 선언하는 방법을 알아야합니다.
예를 들어, 변수를 할당 할 수 있다면 'variable-> loadmovie ()'를 호출하고 싶습니다.
나는 이것이 매우 우스운 일이라는 것을 알고 있습니다. ;) (거의)
해결책
DLL을 #IMPORT (COM과 함께 일할 때 권장하면 인생이 훨씬 쉬워지기 때문에 권장합니다). 스마트 포인터 클래스에는 인터페이스 이름 뒤에 포스트 픽스 'PTR'이 있습니다.
예를 들어:
ISomeInterfacePtr pSomeInterface( CLSID_SomeComponent );
HRESULT hr = pSomeInterface->SomeMethod();
도움이되기를 바랍니다.
편집하다: 할당의 hresult를 확인하려면 다음을 수행 할 수 있습니다.
ISomeInterfacePtr pSomeInterface = 0;
HRESULT hr = pSomeInterface.CreateInstance( CLSID_SomeComponent );
다른 팁
필요한 코드를 자르고 붙여 넣으므로 정확한 구문을 기억할 수 없지만 다음을 수행해야합니다.
올바른 인터페이스의 ccomptr <>를 얻고, 객체 쿼리 interface를 작성하려면 원하는 인터페이스를 얻으려면 (ccomptr을 사용하지 않는다고 가정)
그런 다음 메소드를 호출하십시오.
또는 DLL을 #IMPORT로 만들면 컴파일러가 모든 방법과 속성으로 C ++ 클래스를 생성합니다.
제휴하지 않습니다 StackOverflow