COM Visual Fox Pro Fox Pro 6 0

  • Slides: 26
Download presentation
COM в Visual Fox. Pro® Fox. Pro 6. 0 (основные понятия) Дроздов Михаил Компания

COM в Visual Fox. Pro® Fox. Pro 6. 0 (основные понятия) Дроздов Михаил Компания «ИВС Софт» My Page: http: //vfpdmur. narod. ru/ ICS Page: http: //ics. perm. ru/ mailto: Drozdov@ics. perm. su

Интерфейсы COM Для получения ссылки на интерфейс Iunknown используют функцию: STDAPI Co. Create. Instance(

Интерфейсы COM Для получения ссылки на интерфейс Iunknown используют функцию: STDAPI Co. Create. Instance( REFCLSID rclsid, // ссылка на идентификатор (CLSID) объекта LPUNKNOWN p. Unk. Outer, // ссылка на Iunknown агрегирующего объекта, иначе NULL DWORD dw. Cls. Context, // определяет контекст создаваемого объекта REFIID riid, // ссылка на идент. интерфейса, который тр. получить LPVOID * ppv // адрес для возвращаемой ссылки на интерфейс тр. интерфейс ) Функция Co. Create. Instance. Ex позволяет получать интерфейсы удалённых серверов Для облегчения работы с ком сервером создан интерфейс «фабрики классов» Interface IClass. Factory : IUnknown { HRESULT Create. Instance( IUnknown * p. Unk. Outer, //Pointer to whether object is or isn't part of an aggregate REFIID riid, //Reference to the identifier of the interface void ** ppv. Object //Address of output variable that receives the interface pointer requested in riid ); HRESULT Lock. Server(BOOL f. Lock ); //Increments or decrements the lock count } Для «работы» с библиотекой типов (Type. Lib) (которая и содержит описание интерфейса COMкомпоненты) имеется интерфейс ITypelib Interface IType. Lib : IUnknown { Find. Name(); Get. Documentation(); Get. Lib. Attr(); Get. Type. Comp(); Get. Type. Info. Count(); Get. Type. Info. Of. Guid(); Get. Type. Info. Type(); Is. Name(); Release. TLib. Attr(); }

Интерфейс IDispach OLE Automation создано для языков, не имеющих механизмов работы со ссылками (Visual

Интерфейс IDispach OLE Automation создано для языков, не имеющих механизмов работы со ссылками (Visual Basic, Visual Fox. Pro, и т. д. ) и основывается на интерфейсе IDispatch MIDL_INTERFACE("00020400 -0000 -C 000 -0000046") IDispatch : public IUnknown { public: virtual HRESULT STDMETHODCALLTYPE Get. Type. Info. Count( /* [out] */ UINT __RPC_FAR *pctinfo) = 0; virtual HRESULT STDMETHODCALLTYPE Get. Type. Info( /* [in] */ UINT i. TInfo, /* [in] */ LCID lcid, /* [out] */ IType. Info __RPC_FAR *pp. TInfo) = 0; virtual HRESULT STDMETHODCALLTYPE Get. IDs. Of. Names( /* [in] */ REFIID riid, /* [size_is][in] */ LPOLESTR __RPC_FAR *rgsz. Names, /* [in] */ UINT c. Names, /* [in] */ LCID lcid, /* [size_is][out] */ DISPID __RPC_FAR *rg. Disp. Id) = 0; virtual /* [local] */ HRESULT STDMETHODCALLTYPE Invoke( /* [in] */ DISPID disp. Id. Member, /* [in] */ REFIID riid, /* [in] */ LCID lcid, /* [in] */ WORD w. Flags, /* [out][in] */ DISPPARAMS __RPC_FAR *p. Disp. Params, /* [out] */ VARIANT __RPC_FAR *p. Var. Result, /* [out] */ EXCEPINFO __RPC_FAR *p. Excep. Info, /* [out] */ UINT __RPC_FAR *pu. Arg. Err) = 0; };

Microsoft® Windows® Distributed inter. Net Applications Architecture (Windows DNA) Client’s Applications - COM component’s

Microsoft® Windows® Distributed inter. Net Applications Architecture (Windows DNA) Client’s Applications - COM component’s (MTS) - SQL Database

1(4) Microsoft Excel 2000 в MSDN oct 99 …/office/Excel 9. olb VBAXL 9. CHM

1(4) Microsoft Excel 2000 в MSDN oct 99 …/office/Excel 9. olb VBAXL 9. CHM

2(4)

2(4)

3(4)

3(4)

4(4)

4(4)

1(7) Microsoft Word 2000 в MSDN oct 99 …/office/MSWord 9. olb VBAWRD 9. CHM

1(7) Microsoft Word 2000 в MSDN oct 99 …/office/MSWord 9. olb VBAWRD 9. CHM

2(7)

2(7)

3(7)

3(7)

4(7)

4(7)

5(7)

5(7)

6(7)

6(7)

7(7)

7(7)

1(2) Microsoft Outlook 2000 в MSDN oct 99 …/office/MSOutl 9. olb VBAOUTL 9. CHM

1(2) Microsoft Outlook 2000 в MSDN oct 99 …/office/MSOutl 9. olb VBAOUTL 9. CHM

2(2)

2(2)