【发布时间】:2015-04-23 09:00:42
【问题描述】:
我公司使用的软件允许创建插件,但插件必须是 COM 对象并实现如下所示的 IProfilePlugIn 接口:
namespace profile
{
[Guid("CE694B21-9547-11D3-8606-BB9193E3F22C")]
[TypeLibType(192)]
public interface IProfilePlugIn
{
[DispId(9)]
void AppClose();
[DispId(8)]
void AppCloseQuery(ref bool CanClose);
[DispId(10)]
void AppIdle();
[DispId(11)]
void AppOpen(ref bool ShowQuickStart, ref bool Continue);
[DispId(3)]
void ClientNotification(IProfileClient ProFileClient, string FileName, string ClientID, int Action, ref int Response);
[DispId(7)]
void ExecuteAction(string AActionID, ref bool Handled);
[DispId(2)]
void FieldChangeNotification(IProfileClient ProFileClient, int UniqueID);
[DispId(4)]
int GetAboutBoxBitmap();
[DispId(15)]
void GetEncryptionType(ref int EncryptionType);
[DispId(14)]
void GetLicenseCode(ref string LicenseCode);
[DispId(13)]
void GetLicenseName(ref string LicenseName);
[DispId(6)]
IProfileDialog GetProfileDialog();
[DispId(5)]
int GetSplashBitmap();
[DispId(1)]
void Initialize();
[DispId(12)]
bool RTUNotification(IProfileClient ProFileClient, int RTUType, out string AError);
}
}
有一个方法 AppOpen(ref bool ShowQuickStart, ref bool Continue);在程序第一次打开时执行。例如,如何在该方法期间弹出一个打开的消息框,而无需实现所有其他方法?
据我所知,我必须在 VS 中创建一个 ClassLibrary,然后将其标记为 ComVisible 并从接口继承并添加 GUID 属性和 ClassInterfaceType,但这就是我迷路的地方。
我知道一旦创建,我必须注册 COM 对象并执行一些注册表更改,以便程序使用插件。
我需要做什么才能制作 MessageBox.Show("Test");在 AppOpen 方法期间执行?
【问题讨论】: