0
나는 적절한 것을 얻고 싶다. IDispatch 포인터. 그 다음 그것을 CMyDispatch 포인터에 던져 넣어 라. 그리고 나중에 그것과 함께 나아 간다. 자바 스크립트DISPPARAMS에서 적절한 IDispatch를 얻을 수 있습니까?
즉 나는 이런 식으로 뭔가를 할 :
var x = external.obj.x;
var y = external.obj.y;
external.obj.x = y;
어디
X 및
Y이
의 인스턴스 CMyDispatch 있습니다.
CMyDispatch 자바 스크립트이 방법으로 반환됩니다 에서
STDMETHODIMP CMyDispatch::Invoke(DISPID dispIdMember, REFIID, LCID, WORD wFlags,
DISPPARAMS* pDispParams, VARIANT* pVarResult,
EXCEPINFO*, UINT*) {
if(pVarResult)
{
CMyDispatch* pDisp = new CMyDispatch();
CComVariant val(pDisp);
val.Detach(pVarResult);
}
return S_OK;
}
CMyDispatch.Invoke()DISPATCH_PROPERTYPUT 플래그 나는 Y 값을 보유 CMyDispatch 인스턴스를 얻을 싶어요. 다음 코드를 사용하는 경우
, pDispatch 어떤 쓰레기로 설정됩니다
STDMETHODIMP CMyDispatch::Invoke(DISPID dispIdMember, REFIID, LCID, WORD wFlags,
DISPPARAMS* pDispParams, VARIANT* pVarResult,
EXCEPINFO*, UINT*) {
ASSERT(pDispParams->cArgs == 1);
ASSERT(VT_DISPATCH == pDispParams->rgvarg[0].vt);
IDispatch* pDisp = (pDispParams->rgvarg[0].pdispVal); // <-- garbage
CMyDispatch* pDispatch = (CMyDispatch*) pDisp; // <-- garbage
return S_OK;
}
내가 CMyDispatch 포인터를 제대로 얻으려면 어떻게해야합니까? 감사합니다.
** external.obj.x ** 속성을 ** y ** 객체에 설정하려면 ** IDispatch ** 구현이 가능해야합니다. –
그리고 그것을 수행하려면, 내가 올바른지 구체적인 구현 인스턴스, 인터페이스가 충분하지 않아야합니다. –
이 프록시 pDisp-> Invoke()를 통해 필요한 속성을 가져올 수있었습니다. 그것은 질문에 대한 대답이 아니지만 질문을 제기하는 문제를 해결합니다. 감사합니다. –