扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:lop5712 来源:论坛 2007年10月20日
关键字:
import "oaidl.idl"; import "ocidl.idl"; // 基本框架实现IModuleSite,其提供基本的操作 [ object, uuid(1A201ABA-A669-4ac7-9DF8-2DA772E927FC), pointer_default(unique) ] interface IModuleSite : IUnknown { // 供部门组件改变当前显示模块,如点击了营销模块中的订单查找结果中的 // 办理人字段后自动跳转到人事模块中显示办理人的相关信息 HRESULT ChangeModule( [in] REFCLSID clsid, // 模块的CLSID // 模块名字,仅用于提示 [in, string] WCHAR *pModuleName, // 模块命令,指明欲让模块执行的命令,由模块解释 [in] ULONG command, [in] ULONG param ); // 模块命令的相关参数 HRESULT GetFrameWindow( [out] HWND *pHwnd ); // 返回主框架窗口 }; // 基本框架实现IErrorReport,其提供报告错误的功能 [ object, uuid(1A201ABA-A669-4ac7-9DF9-2DA772E927FC), pointer_default(unique) ] interface IErrorReport: IUnknown { // 报告温和型错误,相当于警告 // fileName代表源代码文件的名字,row代表错误所在行 HRESULT ReportSoftError( [in, string] WCHAR *fileName, [in] ULONG row, [in, string] WCHAR *errorString ); // 报告暴力型错误,相当于错误 HRESULT ReportHardError( [in, string] WCHAR *fileName, [in] ULONG row, [in, string] WCHAR *errorString ); } // 基本框架实现ICompanyInfo,其提供数据库服务器信息 [ object, uuid(1A201ABA-A669-4ac7-9DFA-2DA772E927FC), pointer_default(unique) ] interface ICompanyInfo: IUnknown { // 返回数据库服务器的相关信息,主机IP、服务器名字及密码 HRESULT GetDataServerInfo( [in, string] WCHAR *loaction, [in, string] WCHAR *server, [in, string] WCHAR *password ); } // 基本框架实现ITaskManager,其提供任务的操作 interface ITask; [ object, uuid(1A201ABA-A669-4ac7-9DFB-2DA772E927FC), pointer_default(unique) ] interface ITaskManager: IUnknown { // 添加任务 HRESULT AddTask( [in, string] WCHAR *taskString, // 任务说明字符串 [in] ITask *pTask, // 任务的指针 // 返回标识一个任务的cookie [out] DWORD* pCookie ); }; // 基本框架实现ITaskNotify,其提供任务的通知 [ object, uuid(1A201ABA-A669-4ac7-9DFC-2DA772E927FC), pointer_default(unique) ] interface ITaskNotify: IUnknown { // 通知指定任务的进度已经变化 HRESULT ProcessRateChange( [in] DWORD cookie ); // 通知任务已经结束 HRESULT TaskOver( [in] DWORD cookie ); }; // 部门组件必须实现IModule,其提供模块的操作 [ object, uuid(1A201ABA-A669-4ac7-9DFD-2DA772E927FC), pointer_default(unique) ] interface IModule: IUnknown { // 初始化模块,nID为模块窗口的子窗口ID HRESULT InitialModule( [in] IModuleSite *pSite, [in] UINT nID ); // 返回模块的图标 HRESULT GetIcon( [out] HICON *pHicon ); // 返回模块的名字 HRESULT GetName( [out, string] WCHAR **pName ); }; // 部门组件不一定实现IModuleCommand,其提供执行模块所特有的命令 [ object, uuid(1A201ABA-A669-4ac7-9DFE-2DA772E927FC), pointer_default(unique) ] interface IModuleCommand: IUnknown { HRESULT DoCommand( [in] ULONG command, [in] DWORD param ); }; // 部门组件不一定实现IModuleNotify,其对模块提供一个通知途径 [ object, uuid(1A201ABA-A669-4ac7-9DFF-2DA772E927FC), pointer_default(unique) ] interface IModuleNotify: IUnknown { HRESULT OnActivate(); // 模块切换时被激活 HRESULT OnDeActivate(); // 模块切换时取消激活 }; // 部门组件必须实现IModuleUI,其提供模块界面的相关操作 [ object, uuid(1A201ABA-A669-4ac7-9E00-2DA772E927FC), pointer_default(unique) ] interface IModuleUI: IUnknown { // 返回模块的主要窗口 HRESULT GetMainWindow( [out] HWND *pHwnd ); // 翻译快捷键 HRESULT TranslateAccelerator( [in] MSG *pMsg ); }; // 部门组件不一定实现IMenuUdpate,其提供模块界面中菜单的相关操作 [ object, uuid(1A201ABA-A669-4ac7-9E01-2DA772E927FC), pointer_default(unique) ] interface IMenuUpdate: IUnknown { HRESULT GetMenu( [out] HMENU *pHmenu ); HRESULT GetMenuItemString( [in] ULONG nID, [out, string] WCHAR **pString ); }; // 当部门组件创建了一个任务时,任务对象必须实现ITask以进行相应的任务管理 [ object, uuid(1A201ABA-A669-4ac7-9E02-2DA772E927FC), pointer_default(unique) ] interface ITask: IUnknown { // 返回任务的进度 HRESULT GetProcessRateOfTask( [out] float *pRate ); HRESULT TerminateTask(); // 终止任务 // 将任务和任务管理器绑定起来 HRESULT SetTaskSite( [in] ITaskManager *pManager, [in] DWORD cookie ); }; [ uuid(1A201ABA-A669-4ac7-9D00-2DA772E927FC), version(1.0), helpstring("ExampleBase 1.0 TypeLib") ] library ExampleBaseLib { importlib("stdole32.tlb"); importlib("stdole2.tlb"); interface IModuleSite; interface IErrorReport; interface ICompanyInfo; interface ITaskManager; interface IModule; interface IModuleCommand; interface IModuleNotify; interface IModuleUI; interface IMenuUpdate; interface ITask; interface ITaskNotify; }; |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者