باستخدام المعلمة إشارة على ActiveX عبر جافا سكريبت

StackOverflow https://stackoverflow.com/questions/800773

سؤال

ولدي اكتف (3rd الطرف، لا يوجد مصدر) مع الأسلوب الذي يحتوي على معلمة إشارة من هذا القبيل:

HRESULT GetSomething(
[in] short param1,
[out] BSTR* someString);

في C ++ كنت تنفيذ مثل هذا:

BSTR someString = NULL
m_activeX.GetSomething(0, &someString);

وكيف لي أن تنفيذ هذا عن طريق جافا سكريبت؟ جميع وظائف أخرى في اكتف تعمل بشكل جيد، ولكن هذا يبدو مستحيلا؟ إذا لم يكن ذلك ممكنا في جافا سكريبت، هل هو في VBScript؟ لم يعد لي الحظ في أي منهما.

وراجع للشغل، يجب أن يتم ذلك في Internet Explorer

هل كانت مفيدة؟

المحلول

لا أستطيع أن أعطيك إجابة محددة، ولكن لا أعتقد أنه يمكن القيام به. آمل أن شخص يثبت لي خطأ، ولكن هنا لماذا أنا أعتقد أنه لا يمكن العمل ...

في جافا سكريبت، يتم تمرير كافة المتغيرات من حيث القيمة. في IE، عليك إنشاء مثيل من ActiveXObject جافا سكريبت الطبقة التفاف كائن COM الخاص بك. حتى لو كان هذا الكائن المجمع يمكن الحصول على القيمة من كائن COM الخاص بك، وليس هناك طريقة في جافا سكريبت لذلك لتمرير تلك القيمة بالرد عليك.

إذا كنت تعرف أنك سوف تكون قيد التشغيل في IE على نظام التشغيل Windows، قد تتمكن من محاولة باستخدام VBScript بدلا من جافا سكريبت. فبسكريبت <م> لا الدعم تمرير كل إشارة لذلك قد يكون أكثر حظا مع ذلك.

وآمل أن يساعد.

نصائح أخرى

// Using javascript
var someString = activeXObj.GetSomething(0);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top