0
任何人都知道如何为PowerDesigner开发插件?我正在阅读PowerDesigner关于如何创建ActiveX加载项的文档,它说:“ActiveX必须实现一个名为IPDAddIn的特定接口才能成为PowerDesigner加载项。”但是我不知道IPDAddIn接口在哪里,以及如何实现它? 这里是online documentPowerDesigner插件开发
任何人都知道如何为PowerDesigner开发插件?我正在阅读PowerDesigner关于如何创建ActiveX加载项的文档,它说:“ActiveX必须实现一个名为IPDAddIn的特定接口才能成为PowerDesigner加载项。”但是我不知道IPDAddIn接口在哪里,以及如何实现它? 这里是online documentPowerDesigner插件开发
我有这个旧的例子,它可以提供一些想法,即使不是最新的一切。
using PdAddInTypLib;
namespace MineSpace
{
[ComVisible(true)]
[Guid("A6FA0D26-77E8-4DD3-B27E-F4050C3D5188")]
public class Launcher : IPdAddIn {
// Main() manages the console or GUI interface
// the PdAddIn interface is managed by an instance of Launcher
[ComVisible(false)]
[STAThread]
public static void Main(String[] args) {
}
public Launcher() {
_app = null;
}
// IPdAddIn implementation
public void Initialize(Object anApplication) {
try {
_app = (PdCommon.Application)anApplication;
}
catch (Exception e) {
// process
}
}
public void Uninitialize() {
}
public String ProvideMenuItems(String aMenu, Object anObj) {
return "";
}
public int IsCommandSupported(String aMenu, Object anObj, String aCommand) {
return 0;
}
public void DoCommand(String aMenu, Object anObj, String aCommand) {
}
private PdCommon.Application _app;
}
}
在类的声明中相应的部分:
[HKEY_CLASSES_ROOT\MyPlugin.Launcher]
@="MyPlugin.Launcher"
[HKEY_CLASSES_ROOT\MyPlugin.Launcher\CLSID]
@="{13749EFC-1ADA-4451-8C47-FF0B545FF172}"
[HKEY_CLASSES_ROOT\CLSID\{13749EFC-1ADA-4451-8C47-FF0B545FF172}]
@="MyPlugin.Launcher"
[HKEY_CLASSES_ROOT\CLSID\{13749EFC-1ADA-4451-8C47-FF0B545FF172}\InprocServer32]
@="C:\windows\System32\mscoree.dll"
"ThreadingModel"="Both"
"Class"="MyPlugin.Launcher"
"Assembly"="MyPlugin, Version=1.0.1402.33688, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v1.0.3705"
[HKEY_CLASSES_ROOT\CLSID\{13749EFC-1ADA-4451-8C47-FF0B545FF172}\ProgId]
@="MyPlugin.Launcher"
[HKEY_CLASSES_ROOT\CLSID\{13749EFC-1ADA-4451-8C47-FF0B545FF172}\Implemented Categories\{62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}]
而且相应的代码申报附加在PowerDesigner的。如果File
值存在,PowerDesigner可以调用DllRegisterServer,如果该组件尚未注册。
[HKEY_LOCAL_MACHINE\SOFTWARE\Sybase\PowerDesigner 10\Addins\MyPlugin Launcher]
"Enable"="No"
"Class"="MyPlugin.Launcher"
"Type"="ActiveX"
"File"="d:\\myplugin\\myplugin.exe"
据我所知,各种typelib(pdcommon,pdbpm ... Sybase pd ...东西)都是在安装PowerDesigner时注册的。我认为IPDAddin在其中一个,也许是Sybase PdAddin? – pascal