문제

나는 이것에 익숙하지 않으며 킥 스타트를 사용할 수 있습니다.

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 ++ 클래스를 생성합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top