idispatch

    1熱度

    2回答

    傳遞的JavaScript我發現在「wtypes.h」一些定義 VT_PTR = 26, VT_SAFEARRAY = 27, VT_CARRAY = 28, VT_USERDEFINED = 29, VT_LPSTR = 30, VT_LPWSTR = 31, * VT_PTR [T] pointer type * VT_SAFEARRAY [T] (use V

    3熱度

    3回答

    我試過環顧四周,但無法說服自己,因爲COM/ActiveX的世界似乎很混亂。 基本上我想知道的是,鑑於GUID,有沒有辦法知道ActiveX控件公開的所有接口,屬性和方法? 我在某個地方讀過,你只需要問一個特定的財產是否存在。但是在知道那裏有什麼之前,我該如何詢問一個物業? 我猜IDispatch做了類似的事情,但我無法弄清楚如何使用它。如果這是一個有效的工具,那麼最好在C#中使用一小段代碼片段可

    0熱度

    1回答

    如你所知可以使用下面的代碼創建一個新的Array對象。 var a = new Array(); 現在我實施IWebBrowser一個IDispatch接口,我可以通過一個對象的JavaScript,但如何處理程序創建一個類似如下的代碼定製對象,該CustomObject是不確定的對象類型。 var a = new CustomObject();

    0熱度

    1回答

    我有一個Delphi XE2應用程序,帶有一個TEmbeddedWB,用於模擬用戶操作。應用程序導航到一個URL,用數據填充相關的表單域並提交數據。問題是有一個<input type=file />字段接受上載的文件。 在完成了大量關於此事的閱讀之後,我明白有一個安全問題以編程的方式執行此操作,但也發現有人提出了一個建議,即可以將文件從剪貼板'拖動'到'放下'位置。我已經成功地將相關文件(jpeg

    0熱度

    1回答

    我得到一個ms字的句柄,然後使用AccessibleObjectFromEvent得到的是IDispatch(遲bingding)。然後我想調用它的屬性或方法,它是失敗的。 但可以使用c#。 How to use use late binding to get excel instance? 這樣的代碼。 function GetProperty(dispobj: IDispatch; Prope

    2熱度

    3回答

    我有一個託管Active Script JScript引擎的應用程序。根據jscript.dll的版本,它運行到JScript 5.8。該應用程序向JScript環境公開了許多對象和方法。 當腳本調用特定的功能,與IDL這樣的: HRESULT func(VARIANT varInput); 我想確定輸入是instanceof另一個功能(即,如果該函數是一個構造函數,其原型是在輸入的原型鏈)。在J

    0熱度

    1回答

    我有一個基於MFC的Windows應用程序與GUI,它是用C++編寫的並且有很多COM對象;我們稱之爲「HelloWorld」。 用戶向我發送了一個錯誤報告:有時,爲了響應某個特定的用戶操作,MessageBox出現(在下圖中我刪除了標題欄標題)。 1)在MessageBox的標題欄標題是HelloWorld,並尋找在代碼串,似乎對我來說,這是資源字符串 由AFX_IDS_APP_TITLE標識(

    4熱度

    1回答

    我有一個用C#編寫的COM服務器和一個用Delphi寫的COM客戶端。我已經實現了一個簡單而優雅的回撥機制,它像一個魅力。但是,FastMM4報告說我的Delphi客戶端正在創建內存泄漏。我已經將應用程序提煉成漏洞來自哪裏的本質。我泄漏是由對象被引用計數的方式引起的(它永遠不會變成零,所以永遠不會被銷燬),所以我試圖理解爲什麼引用計數是按照它的方式工作的,是這是因爲我在執行中做錯了。 我已經儘可能

    1熱度

    1回答

    我想在一個免費的Pascal項目使用ActiveX對象時,從文檔我知道一個方法聲明爲 long Fetch(VARIANT* vValue) 其中vVariant會調用後包含結果(整數或浮點值)。 的LazActiveX「導入類型庫」功能轉換這 _SomeApi = dispinterface ['...'] ... function Fetch(vValue:

    0熱度

    1回答

    我想構建一個函數來將VARIANTARG類型分配給DISPPARAMS結構,並且我有一些問題想出如何檢查arg的實際類型。 myFunc(int count, const BYTE* types, ...) { DISPPARAMS dParams; //Initialization stuff goes here for(int x = 0;x < count;