因此,這裏的設置:傳遞命令行參數傳遞給在WPF項目COM組件
C#WPF主要項目使用XAML的佈局
我們有一個古老的MFC ActiveX/COM組件需要使用
CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo);
獲取命令行參數並基於它們進行操作。 這老項目不能改變 :(
Windows窗體類庫項目來包裝COM組件
該組件被添加到XAML觀點是這樣的:
var host = new WindowsFormsHost();
var activeX = new Viewer();
host.Child = activeX;
var grid = new Grid();
grid.Children.Add(host);
Content = grid
如何傳遞COM組件在執行「命令行參數」時會採用的「命令行參數」ParseCommandLine(cmdInfo);
?
更新:
我的winform使用:private AxPLUGINXLib.AxPluginX axPluginX1;
以下定義的類。仍然不確定如何將命令行參數傳遞給它。
[Clsid("{9ab948c6-b1a9-11d2-ac9b-0040c72d55ed}")]
[DesignTimeVisible(true)]
public class AxPluginX : AxHost
{
public AxPluginX();
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[DispId(-525)]
public virtual int ReadyState { get; }
public event _DPluginXEvents_ReadyStateChangeEventHandler ReadyStateChange;
public virtual void AboutBox();
protected override void AttachInterfaces();
protected override void CreateSink();
protected override void DetachSink();
}
你在問你的COM組件的接口是什麼。這是恕我直言,愚蠢。你是那個坐在那個信息上的人。 –
這是無益的。我知道我想傳遞給COM組件的字符串。我不知道如何通過它。就像我說的那樣,它會在獨立的情況下從命令行參數中讀取它。 我需要填充COM組件中的CCommandLineInfo.m_strFileName字段才能使其工作。 –
這是一個COM .exe或COM .dll嗎?如果是.exe,也許你可以通過自己的進程(你可以指定你想要的任何命令行)來啓動COM對象,然後使用GetObject(而不是CreateObject)來獲取實例。 –