我公司使用的软件允许创建插件,但插件必须是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方法中执行?
答案 0 :(得分:1)
我需要做什么才能制作MessageBox.Show(“Test”);在AppOpen方法中执行?
void AppOpen(ref bool ShowQuickStart, ref bool Continue)
{
MessageBox.Show ("Test");
}