3,248
社区成员
发帖
与我相关
我的任务
分享
#ifdef COBJMACROS
#define _DxxxxxxxEvents_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define _DxxxxxxxEvents_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define _DxxxxxxxEvents_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define _DxxxxxxxEvents_GetTypeInfoCount(This,pctinfo) \
( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
#define _DxxxxxxxEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
#define _DxxxxxxxEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
#define _DxxxxxxxEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* ___DxxxxxxxEvents_DISPINTERFACE_DEFINED__ */
EXTERN_C const CLSID CLSID_xxxxxxx;
#ifdef __cplusplus
class DECLSPEC_UUID("746B35C2-AF46-41E5-A8EA-131489E1C44A")
xxxxxxx;
#endif
#endif /* __xxxxxxxLib_LIBRARY_DEFINED__ */
/* Additional Prototypes for ALL interfaces */
/* end of Additional Prototypes */
#ifdef __cplusplus
}
#endif
#endif
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
/* File created by MIDL compiler version 7.00.0500 */
/* at Fri May 30 23:08:10 2008
*/
/* Compiler settings for xxxxxxx.idl:
Oicf, W1, Zp8, env=Win32 (32b run)
protocol : dce , ms_ext, c_ext, robust
error checks: allocation ref bounds_check enum stub_data
VC __declspec() decoration level:
__declspec(uuid()), __declspec(selectany), __declspec(novtable)
DECLSPEC_UUID(), MIDL_INTERFACE()
*/
//@@MIDL_FILE_HEADING( )
#pragma warning( disable: 4049 ) /* more than 64k source lines */
/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif
#include "rpc.h"
#include "rpcndr.h"
#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__
#ifndef __xxxxxxx_h__
#define __xxxxxxx_h__
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif
/* Forward Declarations */
#ifndef ___Dxxxxxxx_FWD_DEFINED__
#define ___Dxxxxxxx_FWD_DEFINED__
typedef interface _Dxxxxxxx _Dxxxxxxx;
#endif /* ___Dxxxxxxx_FWD_DEFINED__ */
#ifndef ___DxxxxxxxEvents_FWD_DEFINED__
#define ___DxxxxxxxEvents_FWD_DEFINED__
typedef interface _DxxxxxxxEvents _DxxxxxxxEvents;
#endif /* ___DxxxxxxxEvents_FWD_DEFINED__ */
#ifndef __xxxxxxx_FWD_DEFINED__
#define __xxxxxxx_FWD_DEFINED__
#ifdef __cplusplus
typedef class xxxxxxx xxxxxxx;
#else
typedef struct xxxxxxx xxxxxxx;
#endif /* __cplusplus */
#endif /* __xxxxxxx_FWD_DEFINED__ */
#ifdef __cplusplus
extern "C"{
#endif
/* interface __MIDL_itf_xxxxxxx_0000_0000 */
/* [local] */
typedef /* [public][public] */ struct __MIDL___MIDL_itf_xxxxxxx_0000_0000_0001
{
unsigned char *p;
int x;
} testStru;
extern RPC_IF_HANDLE __MIDL_itf_xxxxxxx_0000_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_xxxxxxx_0000_0000_v0_0_s_ifspec;
#ifndef __xxxxxxxLib_LIBRARY_DEFINED__
#define __xxxxxxxLib_LIBRARY_DEFINED__
/* library xxxxxxxLib */
/* [control][helpstring][helpfile][version][uuid] */
EXTERN_C const IID LIBID_xxxxxxxLib;
#ifndef ___Dxxxxxxx_DISPINTERFACE_DEFINED__
#define ___Dxxxxxxx_DISPINTERFACE_DEFINED__
/* dispinterface _Dxxxxxxx */
/* [helpstring][uuid] */
EXTERN_C const IID DIID__Dxxxxxxx;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("37881E6C-8D11-4DB5-8698-90A4F802D30D")
_Dxxxxxxx : public IDispatch
{
};
#else /* C style interface */
typedef struct _DxxxxxxxVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
_Dxxxxxxx * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
_Dxxxxxxx * This);
ULONG ( STDMETHODCALLTYPE *Release )(
_Dxxxxxxx * This);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
_Dxxxxxxx * This,
/* [out] */ UINT *pctinfo);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
_Dxxxxxxx * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ ITypeInfo **ppTInfo);
HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
_Dxxxxxxx * This,
/* [in] */ REFIID riid,
/* [size_is][in] */ LPOLESTR *rgszNames,
/* [range][in] */ UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ DISPID *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
_Dxxxxxxx * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS *pDispParams,
/* [out] */ VARIANT *pVarResult,
/* [out] */ EXCEPINFO *pExcepInfo,
/* [out] */ UINT *puArgErr);
END_INTERFACE
} _DxxxxxxxVtbl;
interface _Dxxxxxxx
{
CONST_VTBL struct _DxxxxxxxVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define _Dxxxxxxx_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define _Dxxxxxxx_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define _Dxxxxxxx_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define _Dxxxxxxx_GetTypeInfoCount(This,pctinfo) \
( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
#define _Dxxxxxxx_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
#define _Dxxxxxxx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
#define _Dxxxxxxx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* ___Dxxxxxxx_DISPINTERFACE_DEFINED__ */
#ifndef ___DxxxxxxxEvents_DISPINTERFACE_DEFINED__
#define ___DxxxxxxxEvents_DISPINTERFACE_DEFINED__
/* dispinterface _DxxxxxxxEvents */
/* [helpstring][uuid] */
EXTERN_C const IID DIID__DxxxxxxxEvents;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("2D4659DB-E544-4D55-9D41-E9CD96AABD0A")
_DxxxxxxxEvents : public IDispatch
{
};
#else /* C style interface */
typedef struct _DxxxxxxxEventsVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
_DxxxxxxxEvents * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
_DxxxxxxxEvents * This);
ULONG ( STDMETHODCALLTYPE *Release )(
_DxxxxxxxEvents * This);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
_DxxxxxxxEvents * This,
/* [out] */ UINT *pctinfo);
HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
_DxxxxxxxEvents * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ ITypeInfo **ppTInfo);
HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
_DxxxxxxxEvents * This,
/* [in] */ REFIID riid,
/* [size_is][in] */ LPOLESTR *rgszNames,
/* [range][in] */ UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ DISPID *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
_DxxxxxxxEvents * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS *pDispParams,
/* [out] */ VARIANT *pVarResult,
/* [out] */ EXCEPINFO *pExcepInfo,
/* [out] */ UINT *puArgErr);
END_INTERFACE
} _DxxxxxxxEventsVtbl;
interface _DxxxxxxxEvents
{
CONST_VTBL struct _DxxxxxxxEventsVtbl *lpVtbl;
};
// xxxxxxx.idl : ActiveX 控件项目的类型库源。
// 此文件将由 MIDL 编译器工具处理以
// 产生类型库(xxxxxxx.tlb),该类型库将成为
// xxxxxxx.ocx.
#include <olectl.h>
#include <idispids.h>
typedef struct
{
char* p;
int x;
}testStru;
[ uuid(2DC06B3F-EBE2-4096-9178-DC4C5BD42987), version(1.0),
helpfile("xxxxxxx.hlp"),
helpstring("xxxxxxx ActiveX 控件模块"),
control ]
library xxxxxxxLib
{
importlib(STDOLE_TLB);
// CxxxxxxxCtrl 的主调度接口
[ uuid(37881E6C-8D11-4DB5-8698-90A4F802D30D),
helpstring("xxxxxxx Control 的调度接口")]
dispinterface _Dxxxxxxx
{
properties:
methods:
[id(DISPID_ABOUTBOX)] void AboutBox(testStru*);
};
// CxxxxxxxCtrl 的事件调度接口
[ uuid(2D4659DB-E544-4D55-9D41-E9CD96AABD0A),
helpstring("xxxxxxx Control 的事件接口") ]
dispinterface _DxxxxxxxEvents
{
properties:
// 事件接口没有任何属性
methods:
};
// CxxxxxxxCtrl 的类信息
[ uuid(746B35C2-AF46-41E5-A8EA-131489E1C44A),
helpstring("xxxxxxx Control"), control ]
coclass xxxxxxx
{
[default] dispinterface _Dxxxxxxx;
[default, source] dispinterface _DxxxxxxxEvents;
};
};