-
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;
-
}
|