2014-11-06 7 views
1

javascript를 통해 activeX 속성을 설정하려고합니다. 나는 OLE/COM 개체 뷰어를 이용하고 있고 설정은 다음과 같습니다선택적 입력으로 ActiveX 속성 설정

[id(0x0000001e), propput, helpstring("property Param")] 
void Param(
       [in] ParamCodes Params, 
       [in, optional, defaultvalue(1)] long lRec, 
       [in, optional, defaultvalue(1)] long lEntry, 
       [in] VARIANT rhs); 

내가 var channel = mvc.Param(0x2004001a)에 의해 매개 변수에 액세스 할 수 있습니다. 그러나 mvc.Param(0x2004001a) = 100을 사용하여 속성을 설정하려고하면 자바 스크립트가 중지됩니다. mvc.Param(0x2004001a,4,5)을 사용하는 선택적 매개 변수를 사용하여 다른 레코드에 액세스하거나 설정할 수 없습니다. 이 구문을 잘못 사용하고 있습니까? 아니면 mvc.Invoke() 도로로 전화해야합니까?

답변

0

이 메서드는 선택적/defaultvalue 특성을 잘못 사용하며 이것이 제대로 작동하지 않을 것으로 생각합니다. MSDN :

MIDL 컴파일러는 다음 매개 변수 순서를 받아 들인다 (에서 왼쪽에서 오른쪽으로) : ((가) [DEFAULTVALUE] 또는 [선택] 속성이없는 매개 변수)

  • 필수 매개 변수, 함께 또는 [DEFAULTVALUE] 특성없이
  • 선택 파라미터는 [옵션] 속성 및 [DEFAULTVALUE] 특성없이
  • 파라미터
  • [LCID] 파라미터 (있는 경우) ,
  • 는 [RETVAL] 매개 변수

당신은 [in] 인수는 속성 할당 값이됩니다 당신이 선택 접근 매개 변수를 사용할 수 있도록 위의 목록에서 제외 할 수 있습니다 마지막으로 가정을하고 있습니다 그러나 그것은 아니다 문서화 된 동작, 그리고 아마도 더 중요한 것은 자동화 속성에 대한 자체 제약이있는 JS 엔진에서 거의 지원되지 않습니다.

임의의 매개 변수를 사용하면 ParamCodes이 무엇인지, 인터페이스 속성/정의가 명확하지 않아서 JS에서 속성을 사용할 수없는 문제가있을 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 문제를 해결했습니다. COM 개체가 파일을 여는 방법 (읽기 전용)과 관련이있었습니다. 올바른 속성을 설정하고'mvc.Param (0x2004001a, 1,1) = 100'이 필요로하는'ParamCode'에 접근 할 수있었습니다 .. –

+0

모든 인수를 명시 적으로 제공 했으므로 이제는 의미가 있습니다 - 선택 속성이 있습니다. 위에서 언급 한 이유 때문에 무시해야합니다. –

관련 문제