ATL을 사용하여 작성한 ActiveX 컨트롤이 있는데 다소 심각하고 혼란스러운 문제가 있습니다. iDispatch :: Invoke가 DISPATCH_PROPERTYPUT/METHOD로 호출되면 모든 것이 정상입니다. 유효한 BSTR VT_BSTR 메서드 호출 후 IE 자바 스크립트 값을 반환하면 잘 작동합니다.IE에서 w/iDispatch 권한이 거부되었습니다. DISPATCH_PROPERTYGET
하지만 내가하려고하면
의 IDispatch는 DISPATCH_PROPERTYGET 플래그로 호출 호출, 나는 유효한 BSTR로 VT_BSTR 반환 값 (i는 메소드 호출에 사용하는 동일한 하나를 설정var stringValue = Object.stringValue;
), IE에서 오류 상자가 거부되었습니다.
나는 IE의 자바 스크립트에 다양한 데이터 유형 (정수 (Long), 정수, bools, ... 등)을 반환하는 경우, 그것은합니다 (propertyGet() 메소드) 잘 작동합니다. VT_BSTR을 반환 할 때만 권한이 거부됩니다.
아이디어가 있으십니까?
get 메소드 구현을 게시 할 수 있습니까? E_ACCESSDENIED를 반환하지 않는다고 가정합니다. –
Howdy, \t \t \t \t pvarResult-> bstrVal = (BSTR) c; \t \t \t \tpvarResult-> vt = VT_BSTR; \t \t \t \t (wFlags == DISPATCH_PROPERTYGET) \t \t \t \t \t 복귀 S_OK 경우; 참고로 난 그냥 배치 wflags가 == 전에 몇 일 DISPATCH_PROPERTYGET 문을 확인 일들이 S_OK를 반환하고 만드는 경우. 이것은 나에게 상당히 혼란스러운 문제입니다. 나는 msdn에 idispatch 비트를 쏟아 부 었으며 내가 잘못하고있는 것을 나타낼만큼 많이 발견되지 않았습니다. bstr 디버깅도 유효합니다. 그리고 wflags에 dispatch_method가 설정된 경우 동일한 코드 블록이 작동합니다 .. – anthony
죄송합니다. pvarResult-> bstrVal = (BSTR) c; pvarResult-> vt = VT_BSTR; 경우 (wFlags == DISPATCH_PROPERTYGET) 당신은 단지 좋은 포맷 방식으로 코드를 추가 게시물을 편집 할 수 있습니다 – anthony