File : gnatcom-types.ads
------------------------------------------------------------------------------
-- --
-- GNATCOM - Ada 95 COM/DCOM/COM+ Development Framework and Tools --
-- --
-- G N A T C O M . T Y P E S --
-- --
-- S p e c --
-- --
-- $Revision: 1.6 $
-- --
-- Copyright (C) 1999, 2000, 2001 David Botton --
-- --
-- This is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
-- ware Foundation; either version 2, or (at your option) any later ver- --
-- sion. It is distributed in the hope that it will be useful, but WITHOUT --
-- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or --
-- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
-- for more details. You should have received a copy of the GNU General --
-- Public License distributed with this; see file COPYING. If not, write --
-- to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, --
-- MA 02111-1307, USA. --
-- --
-- As a special exception, if other files instantiate generics from this --
-- unit, or you link this unit with other files to produce an executable, --
-- this unit does not by itself cause the resulting executable to be --
-- covered by the GNU General Public License. This exception does not --
-- however invalidate any other reasons why the executable file might be --
-- covered by the GNU Public License. --
-- --
-- More information about GNATCOM and the most current public version can --
-- be located on the web at http://www.adapower.com/gnatcom --
-- --
-- Support for GNATCOM is available from Ada Core Technologies, Inc. --
-- --
-- In the U.S., contact Ada Core Technologies at: --
-- Tel: +1 (212) 620 7300 ext 117 --
-- Fax: +1 (212) 807 0162 --
-- Email: sales@gnat.com --
-- --
-- In Europe and elsewhere, contact ACT Europe at: --
-- Tel: +33 1 49 70 67 16 --
-- Fax: +33 1 49 70 05 52 --
-- Email: sales@act-europe.fr --
------------------------------------------------------------------------------
-- Thin bindings to COM Types
with Interfaces.C;
with System;
package GNATCOM.Types is
package C renames Interfaces.C;
Size_Of_Pointers : constant := 32;
type HRESULT is new Interfaces.C.unsigned_long;
type Pointer_To_HRESULT is access all HRESULT;
subtype SCODE is HRESULT;
type Pointer_To_SCODE is access all SCODE;
-- HRESULTs are used to return the success or failure of Interface
-- methods and COM APIs. See GNATCOM.Errors
type Void is null record;
subtype Pointer_To_Void is System.Address;
type Pointer_To_Pointer_To_Void is access all Pointer_To_Void;
-- C style Void pointers
type Pointer_To_char is access all Interfaces.C.char;
type Pointer_To_Pointer_To_char is access all Interfaces.C.char;
type Pointer_To_wchar_t is access all Interfaces.C.wchar_t;
subtype LPSTR is Pointer_To_char;
type Pointer_To_LPSTR is access all LPSTR;
subtype LPWSTR is Pointer_To_wchar_t;
type Pointer_To_LPWSTR is access all LPWSTR;
-- C style strings
function To_C (From : access Interfaces.C.wchar_t)
return Interfaces.C.wchar_array;
function To_Ada (From : access Interfaces.C.wchar_t) return String;
function To_Ada (From : access Interfaces.C.wchar_t) return Wide_String;
-- Convert pointers to C wide strings to usable types
Size_Of_Currency : constant := 64;
type CURRENCY is
record
Lo : Interfaces.C.unsigned_long;
Hi : Interfaces.C.long;
end record;
for CURRENCY'Size use Size_Of_Currency;
type Pointer_To_CURRENCY is access all CURRENCY;
-- Automation CURRENCY type. It is an 8 byte, two's complement integer
-- scaled by 10,000 to give a fixed-point number with 15 digits to the
-- left and 4 to the righ of the decimal point
type DATE is new Interfaces.C.double;
type Pointer_To_DATE is access all DATE;
-- Automation DATE type implemented using an 8-byte floating-point number.
-- Days are represneted by whole number increments starting from
-- December 30, 1899
VARIANT_BOOL_TRUE : constant := -1;
VARIANT_BOOL_FALSE : constant := 0;
type VARIANT_BOOL is new Interfaces.C.short;
type Pointer_To_VARIANT_BOOL is access all VARIANT_BOOL;
-- All bits on = True
-- All bits off = False
-- All other values are invalid
-- COM Numeric Types
Size_Of_LONGLONG : constant := 64;
type LONGLONG is record
Lo : Interfaces.C.int;
Hi : Interfaces.C.int;
end record;
for LONGLONG'Size use Size_Of_LONGLONG;
pragma Convention (C_Pass_By_Copy, LONGLONG);
type Pointer_To_LONGLONG is access all LONGLONG;
type DWORD is new Interfaces.C.unsigned;
type Pointer_To_DWORD is access all DWORD;
Size_Of_DWORDLONG : constant := 64;
type DWORDLONG is record
Lo : Interfaces.C.unsigned;
Hi : Interfaces.C.unsigned;
end record;
for DWORDLONG'Size use Size_Of_DWORDLONG;
pragma Convention (C_Pass_By_Copy, DWORDLONG);
type Pointer_To_DWORDLONG is access all DWORDLONG;
type BYTE is new Interfaces.C.unsigned_char;
type Pointer_To_BYTE is access all BYTE;
bool_TRUE : constant := 1;
bool_FALSE : constant := 0;
subtype bool is Interfaces.C.long;
type Pointer_To_bool is access all bool;
type DECIMAL is
record
wReserved : Interfaces.C.unsigned_short;
scale : BYTE;
sign : BYTE;
Hi32 : Interfaces.C.unsigned_long;
Lo32 : Interfaces.C.unsigned_long;
Mid32 : Interfaces.C.unsigned_long;
end record;
pragma Convention (C_Pass_By_Copy, DECIMAL);
type Pointer_To_DECIMAL is access all DECIMAL;
Size_Of_BLOB : constant := 64;
type BLOB is
record
cbSize : Interfaces.C.unsigned_long;
pBlobData : Pointer_To_BYTE;
end record;
pragma Convention (C_Pass_By_Copy, BLOB);
for BLOB'Size use Size_Of_BLOB;
type Pointer_To_BLOB is access all BLOB;
-- Automation type - (B)inary (L)arge (OB)ject
type SAFEARRAYBOUND is
record
cElements : Interfaces.C.unsigned_long;
lLbound : Interfaces.C.long;
end record;
pragma Convention (C_Pass_By_Copy, SAFEARRAYBOUND);
type Pointer_To_SAFEARRAYBOUND is access all SAFEARRAYBOUND;
type SAFEARRAY is
record
cDims : Interfaces.C.short;
fFeatures : Interfaces.C.short;
cbElements : Interfaces.C.unsigned_long;
cLocks : Interfaces.C.unsigned_long;
pvData : Pointer_To_Void;
rgsabound : Pointer_To_SAFEARRAYBOUND;
end record;
pragma Convention (C_Pass_By_Copy, SAFEARRAY);
type Pointer_To_SAFEARRAY is access all SAFEARRAY;
type Pointer_To_Pointer_To_SAFEARRAY is access all Pointer_To_SAFEARRAY;
-- Automation array type requires use of SAFEARRAY APIs
Size_Of_GUID : constant := 128;
type GUID_Data4_Array is
array (Integer range 0 .. 7) of Interfaces.C.unsigned_char;
type GUID is
record
Data1 : Interfaces.C.unsigned_long;
Data2 : Interfaces.C.unsigned_short;
Data3 : Interfaces.C.unsigned_short;
Data4 : GUID_Data4_Array;
end record;
pragma Convention (C_Pass_By_Copy, GUID);
for GUID'Size use Size_Of_GUID;
type Pointer_To_GUID is access all GUID;
-- GUID - Globaly Unique Identifier
-- GUIDs are used through in COM to uniquely identify types, interfaces,
-- objects, and libraries. See GNATCOM.GUID
GUID_NULL : aliased GUID :=
(0, 0, 0,
(C.unsigned_char'Val (0), C.unsigned_char'Val (0),
C.unsigned_char'Val (0), C.unsigned_char'Val (0),
C.unsigned_char'Val (0), C.unsigned_char'Val (0),
C.unsigned_char'Val (0), C.unsigned_char'Val (0)));
subtype BSTR is Pointer_To_wchar_t;
type Pointer_To_BSTR is access all BSTR;
-- Basic (or Binary) strings
-- The word before the pointer contains the length of the string
-- creation and manipulation of the string requires use of the BSTR
-- APIs or GNATCOM.BSTR
type IUnknown;
type IDispatch;
type VARIANT;
type ITypeLib;
type ITypeInfo;
type ITypeComp;
type ICreateTypeInfo;
type ICreateTypeLib;
type IClassFactory;
type IClassFactory2;
type IConnectionPointContainer;
type IConnectionPoint;
type IEnumConnectionPoints;
type IEnumConnections;
type IEnumVARIANT;
type IGlobalInterfaceTable;
-- Forward references to COM Interfaces and types
type Pointer_To_int is access all Interfaces.C.int;
type Pointer_To_short is access all Interfaces.C.short;
type Pointer_To_long is access all Interfaces.C.long;
type Pointer_To_double is access all Interfaces.C.double;
type Pointer_To_C_float is access all Interfaces.C.C_float;
type Pointer_To_unsigned is access all Interfaces.C.unsigned;
type Pointer_To_unsigned_long is access all Interfaces.C.unsigned_long;
type Pointer_To_unsigned_short is access all Interfaces.C.unsigned_short;
type Pointer_To_IUnknown is access all IUnknown;
type Pointer_To_IDispatch is access all IDispatch;
type Pointer_To_Pointer_To_IUnknown is access all Pointer_To_IUnknown;
type Pointer_To_Pointer_To_IDispatch is access all Pointer_To_IDispatch;
type Pointer_To_VARIANT is access all VARIANT;
type Pointer_To_ITypeLib is access all ITypeLib;
type Pointer_To_Pointer_To_ITypeLib is access all Pointer_To_ITypeLib;
type Pointer_To_ITypeInfo is access all ITypeInfo;
type Pointer_To_Pointer_To_ITypeInfo is access all Pointer_To_ITypeInfo;
type Pointer_To_ITypeComp is access all ITypeComp;
type Pointer_To_Pointer_To_ITypeComp is access all Pointer_To_ITypeComp;
type Pointer_To_ICreateTypeLib is access all ICreateTypeLib;
type Pointer_To_Pointer_To_ICreateTypeLib is
access all Pointer_To_ICreateTypeLib;
type Pointer_To_ICreateTypeInfo is access all ICreateTypeInfo;
type Pointer_To_Pointer_To_ICreateTypeInfo is
access all Pointer_To_ICreateTypeInfo;
type Pointer_To_IClassFactory is access all IClassFactory;
type Pointer_To_IClassFactory2 is access all IClassFactory2;
type Pointer_To_IConnectionPointContainer is
access all IConnectionPointContainer;
type Pointer_To_Pointer_To_IConnectionPointContainer is
access all Pointer_To_IConnectionPointContainer;
type Pointer_To_IConnectionPoint is access all IConnectionPoint;
type Pointer_To_Pointer_To_IConnectionPoint is
access all Pointer_To_IConnectionPoint;
type Pointer_To_IEnumConnectionPoints is access all IEnumConnectionPoints;
type Pointer_To_Pointer_To_IEnumConnectionPoints is
access all Pointer_To_IEnumConnectionPoints;
type Pointer_To_IEnumConnections is access all IEnumConnections;
type Pointer_To_Pointer_To_IEnumConnections is
access all Pointer_To_IEnumConnections;
type Pointer_To_IEnumVARIANT is access all IEnumVARIANT;
type Pointer_To_Pointer_To_IEnumVARIANT is access all IEnumVARIANT;
type Pointer_To_IGlobalInterfaceTable is access all IGlobalInterfaceTable;
-- Pointer types used by COM
VT_EMPTY : constant := 0;
VT_NULL : constant := 1;
VT_I2 : constant := 2;
VT_I4 : constant := 3;
VT_R4 : constant := 4;
VT_R8 : constant := 5;
VT_CY : constant := 6;
VT_DATE : constant := 7;
VT_BSTR : constant := 8;
VT_DISPATCH : constant := 9;
VT_ERROR : constant := 10;
VT_BOOL : constant := 11;
VT_VARIANT : constant := 12;
VT_UNKNOWN : constant := 13;
VT_DECIMAL : constant := 14;
VT_I1 : constant := 16;
VT_UI1 : constant := 17;
VT_UI2 : constant := 18;
VT_UI4 : constant := 19;
VT_I8 : constant := 20;
VT_UI8 : constant := 21;
VT_INT : constant := 22;
VT_UINT : constant := 23;
VT_VOID : constant := 24;
VT_HRESULT : constant := 25;
VT_PTR : constant := 26;
VT_SAFEARRAY : constant := 27;
VT_CARRAY : constant := 28;
VT_USERDEFINED : constant := 29;
VT_LPSTR : constant := 30;
VT_LPWSTR : constant := 31;
VT_RECORD : constant := 36;
VT_FILETIME : constant := 64;
VT_BLOB : constant := 65;
VT_STREAM : constant := 66;
VT_STORAGE : constant := 67;
VT_STREAMED_OBJECT : constant := 68;
VT_STORED_OBJECT : constant := 69;
VT_BLOB_OBJECT : constant := 70;
VT_CF : constant := 71;
VT_CLSID : constant := 72;
VT_BSTR_BLOB : constant := 4095;
VT_VECTOR : constant := 4096;
VT_ARRAY : constant := 8192;
VT_BYREF : constant := 16384;
VT_RESERVED : constant := 32768;
VT_ILLEGAL : constant := 65535;
VT_ILLEGALMASKED : constant := 4095;
VT_TYPEMASK : constant := 4095;
-- Variant Type Constants used to indetify the contents of a variant
subtype VARTYPE is Interfaces.C.unsigned_short;
type Pointer_To_VARTYPE is access all VARTYPE;
subtype Variant_Range is Positive range 1 .. 41;
-- NOTE: The Which values are completely bogus and have no significance
-- The type of the variant can not be determined using it
-- The values bellow do NOT correspond to correct variant type
-- constants!
type Variant_Union (Which : Variant_Range := 1) is
record
case Which is
when 1 =>
lVal : Interfaces.C.long;
when 2 =>
bVal : Interfaces.C.unsigned_char;
when 3 =>
iVal : Interfaces.C.short;
when 4 =>
fltVal : Interfaces.C.C_float;
when 5 =>
dblVal : Interfaces.C.double;
when 6 =>
boolVal : VARIANT_BOOL;
when 7 =>
bool : VARIANT_BOOL;
when 8 =>
scode : Types.SCODE;
when 9 =>
cyVal : CURRENCY;
when 10 =>
date : Types.DATE;
when 11 =>
bstrVal : BSTR;
when 12 =>
punkVal : Pointer_To_IUnknown;
when 13 =>
pdispVal : Pointer_To_IDispatch;
when 14 =>
parray : Pointer_To_SAFEARRAY;
when 15 =>
pbVal : Pointer_To_BYTE;
when 16 =>
piVal : Pointer_To_short;
when 17 =>
plVal : Pointer_To_long;
when 18 =>
pfltVal : Pointer_To_C_float;
when 19 =>
pdblVal : Pointer_To_double;
when 20 =>
pboolVal : Pointer_To_VARIANT_BOOL;
when 21 =>
pbool : Pointer_To_VARIANT_BOOL;
when 22 =>
pscode : Pointer_To_SCODE;
when 23 =>
pcyVal : Pointer_To_CURRENCY;
when 24 =>
pdate : Pointer_To_DATE;
when 25 =>
pbstrVal : Pointer_To_BSTR;
when 26 =>
ppunkVal : Pointer_To_Pointer_To_IUnknown;
when 27 =>
ppdispVal : Pointer_To_Pointer_To_IDispatch;
when 28 =>
pparray : Pointer_To_Pointer_To_SAFEARRAY;
when 29 =>
pvarVal : Pointer_To_VARIANT;
when 30 =>
byref : Pointer_To_Void;
when 31 =>
cVal : Interfaces.C.char;
when 32 =>
uiVal : Interfaces.C.unsigned_short;
when 33 =>
ulVal : Interfaces.C.unsigned_long;
when 34 =>
intVal : Interfaces.C.int;
when 35 =>
uintVal : Interfaces.C.unsigned;
when 36 =>
pdecVal : Pointer_To_DECIMAL;
when 37 =>
pcVal : Pointer_To_char;
when 38 =>
puiVal : Pointer_To_unsigned_short;
when 39 =>
pulVal : Pointer_To_unsigned_long;
when 40 =>
pintVal : Pointer_To_int;
when 41 =>
puintVal : Pointer_To_unsigned;
end case;
end record;
pragma Convention (C_Pass_By_Copy, Variant_Union);
pragma Unchecked_Union (Variant_Union);
Size_Of_VARIANT : constant := 128;
type VARIANT is
record
vt : VARTYPE;
wReserved1 : Interfaces.C.unsigned_short;
wReserved2 : Interfaces.C.unsigned_short;
wReserved3 : Interfaces.C.unsigned_short;
u : Variant_Union;
end record;
for VARIANT'Size use Size_Of_VARIANT;
pragma Convention (C_Pass_By_Copy, VARIANT);
-- The automation type VARIANT is used to create a variable that
-- can contain any of the OLEAUTOMATION types. The value of vt
-- indicates the type currently held in the type union in u
-- Variants should be manipulated using the Variant APIs or with
-- GNATCOM.Variant
type Pointer_To_VARIANT_Constant is access constant VARIANT;
VARIANT_MISSING : aliased constant VARIANT :=
(VT_ERROR, 0, 0, 0, u => (Which => 8, scode => DISP_E_PARAMNOTFOUND));
PVARIANT_MISSING : Pointer_To_VARIANT_Constant := VARIANT_MISSING'Access;
VARIANT_TRUE : aliased constant VARIANT :=
(VT_BOOL, 0, 0, 0, u => (Which => 6, boolVal => VARIANT_BOOL_TRUE));
PVARIANT_TRUE : Pointer_To_VARIANT_Constant := VARIANT_TRUE'Access;
VARIANT_FALSE : aliased constant VARIANT :=
(VT_BOOL, 0, 0, 0, u => (Which => 6, boolVal => VARIANT_BOOL_FALSE));
PVARIANT_FALSE : Pointer_To_VARIANT_Constant := VARIANT_FALSE'Access;
VARIANT_NULL : aliased constant VARIANT :=
(VT_NULL, 0, 0, 0, u => (Which => 1, lVal => 0));
PVARIANT_NULL : Pointer_To_VARIANT_Constant := VARIANT_NULL'Access;
MAX_PARAMS : constant := 255;
type BSTR_PARAM_ARRAY is array
(Interfaces.C.short range 0 .. MAX_PARAMS) of
aliased GNATCOM.Types.BSTR;
pragma Convention (C, BSTR_PARAM_ARRAY);
type Pointer_To_BSTR_PARAM_ARRAY is access all BSTR_PARAM_ARRAY;
type VARIANT_PARAM_ARRAY is array
(Interfaces.C.unsigned range 0 .. MAX_PARAMS) of
aliased GNATCOM.Types.VARIANT;
pragma Convention (C, VARIANT_PARAM_ARRAY);
type Pointer_To_VARIANT_PARAM_ARRAY is access all VARIANT_PARAM_ARRAY;
type DISPID_PARAM_ARRAY is array
(Interfaces.C.unsigned range 0 .. MAX_PARAMS) of
aliased Interfaces.C.long;
pragma Convention (C, DISPID_PARAM_ARRAY);
type Pointer_To_DISPID_PARAM_ARRAY is access all DISPID_PARAM_ARRAY;
-- Parameter helper arrays
type DISPPARAMS is
record
rgvarg : Pointer_To_VARIANT_PARAM_ARRAY;
rgdispidNamedArgs : Pointer_To_DISPID_PARAM_ARRAY;
cArgs : Interfaces.C.unsigned;
cNamedArgs : Interfaces.C.unsigned;
end record;
pragma Convention (C_Pass_By_Copy, DISPPARAMS);
type Pointer_To_DISPPARAMS is access all DISPPARAMS;
-- Parameters to be passed in to an invocation of an IDispatch method
type EXCEPINFO is
record
wCode : Interfaces.C.short;
wReserved : Interfaces.C.short;
bstrSource : BSTR;
bstrDescription : BSTR;
bstrHelpFile : BSTR;
dwHelpContext : Interfaces.C.long;
pvReserved : Pointer_To_Void;
pfnDeferredFillIn : Pointer_To_Void;
scode : Types.SCODE;
end record;
pragma Convention (C_Pass_By_Copy, EXCEPINFO);
type Pointer_To_EXCEPINFO is access all EXCEPINFO;
-- Used to return exception information with in an invocation of an
-- IDispatch method
-- COM Object related enums
CLSCTX_INPROC_SERVER : constant := 1;
CLSCTX_INPROC_HANDLER : constant := 2;
CLSCTX_LOCAL_SERVER : constant := 4;
CLSCTX_INPROC_SERVER16 : constant := 8;
CLSCTX_REMOTE_SERVER : constant := 16;
CLSCTX_INPROC_HANDLER16 : constant := 32;
CLSCTX_INPROC_SERVERX86 : constant := 64;
CLSCTX_INPROC_HANDLERX86 : constant := 128;
CLSCTX_SERVER : constant := 21;
CLSCTX_ALL : constant := 23;
subtype CLSCTX is Interfaces.C.long;
type Pointer_To_CLSCTX is access all CLSCTX;
-- Used to specify what server type to use when creating the COM object
-- IUnknown Interface
-- {00000000-0000-0000-C000-000000000046}
IID_IUnknown : aliased GUID :=
(0, 0, 0,
(C.unsigned_char'Val (192), C.unsigned_char'Val (0),
C.unsigned_char'Val (0), C.unsigned_char'Val (0),
C.unsigned_char'Val (0), C.unsigned_char'Val (0),
C.unsigned_char'Val (0), C.unsigned_char'Val (70)));
type af_IUnknown_QueryInterface is access
function (This : access IUnknown;
riid : in Pointer_To_GUID;
ppvObj : in Pointer_To_Pointer_To_Void)
return HRESULT;
pragma Convention (StdCall, af_IUnknown_QueryInterface);
type af_IUnknown_AddRef is access
function (This : access IUnknown) return Interfaces.C.unsigned_long;
pragma Convention (StdCall, af_IUnknown_AddRef);
type af_IUnknown_Release is access
function (This : access IUnknown) return Interfaces.C.unsigned_long;
pragma Convention (StdCall, af_IUnknown_Release);
type IUnknownVtbl;
type Pointer_To_IUnknownVtbl is access all IUnknownVtbl;
type IUnknown is
record
Vtbl : Pointer_To_IUnknownVtbl;
end record;
pragma Convention (C_Pass_By_Copy, IUnknown);
type IUnknownVtbl is
record
QueryInterface : af_IUnknown_QueryInterface;
AddRef : af_IUnknown_AddRef;
Release : af_IUnknown_Release;
end record;
pragma Convention (C_Pass_By_Copy, IUnknownVtbl);
-- IDispatch Interface
-- {00020400-0000-0000-C000-000000000046}
IID_IDispatch : aliased GUID :=
(132096, 0, 0,
(C.unsigned_char'Val (192), C.unsigned_char'Val (0),
C.unsigned_char'Val (0), C.unsigned_char'Val (0),
C.unsigned_char'Val (0), C.unsigned_char'Val (0),
C.unsigned_char'Val (0), C.unsigned_char'Val (70)));
type af_IDispatch_QueryInterface is access
function (This : access IDispatch;
riid : in Pointer_To_GUID;
ppvObj : in Pointer_To_Pointer_To_Void)
return HRESULT;
pragma Convention (StdCall, af_IDispatch_QueryInterface);
type af_IDispatch_AddRef is access
function (This : access IDispatch) return Interfaces.C.unsigned_long;
pragma Convention (StdCall, af_IDispatch_AddRef);
type af_IDispatch_Release is access
function (This : access IDispatch) return Interfaces.C.unsigned_long;
pragma Convention (StdCall, af_IDispatch_Release);
type af_IDispatch_GetTypeInfoCount is access
function (This : access IDispatch;
pctinfo : in Pointer_To_int)
return HRESULT;
pragma Convention (StdCall, af_IDispatch_GetTypeInfoCount);
type af_IDispatch_GetTypeInfo is access
function (This : access IDispatch;
itinfo : in Interfaces.C.int;
lcid : in Interfaces.C.long;
pptinfo : in Pointer_To_Pointer_To_ITypeInfo)
return HRESULT;
pragma Convention (StdCall, af_IDispatch_GetTypeInfo);
type af_IDispatch_GetIDsOfNames is access
function (This : access IDispatch;
riid : in Pointer_To_GUID;
rgszNames : in Pointer_To_LPWSTR;
cNames : in Interfaces.C.int;
lcid : in Interfaces.C.long;
rgdispid : in Pointer_To_long)
return HRESULT;
pragma Convention (StdCall, af_IDispatch_GetIDsOfNames);
type af_IDispatch_Invoke is access
function (This : access IDispatch;
dispidMember : in Interfaces.C.long;
riid : in Pointer_To_GUID;
lcid : in Interfaces.C.long;
wFlags : in Interfaces.C.short;
pdispparams : in Pointer_To_DISPPARAMS;
pvarResult : in Pointer_To_VARIANT;
pexcepinfo : in Pointer_To_EXCEPINFO;
puArgErr : in Pointer_To_int)
return HRESULT;
pragma Convention (StdCall, af_IDispatch_Invoke);
type IDispatchVtbl;
type Pointer_To_IDispatchVtbl is access all IDispatchVtbl;
type IDispatch is
record
Vtbl : Pointer_To_IDispatchVtbl;
end record;
pragma Convention (C_Pass_By_Copy, IDispatch);
type IDispatchVtbl is
record
QueryInterface : af_IDispatch_QueryInterface;
AddRef : af_IDispatch_AddRef;
Release : af_IDispatch_Release;
GetTypeInfoCount : af_IDispatch_GetTypeInfoCount;
GetTypeInfo : af_IDispatch_GetTypeInfo;
GetIDsOfNames : af_IDispatch_GetIDsOfNames;
Invoke : af_IDispatch_Invoke;
end record;
pragma Convention (C_Pass_By_Copy, IDispatchVtbl);
-- Type Library related types
TKIND_ENUM : constant := 0;
TKIND_RECORD : constant := 1;
TKIND_MODULE : constant := 2;
TKIND_INTERFACE : constant := 3;
TKIND_DISPATCH : constant := 4;
TKIND_COCLASS : constant := 5;
TKIND_ALIAS : constant := 6;
TKIND_UNION : constant := 7;
TKIND_MAX : constant := 8;
subtype TYPEKIND is Interfaces.C.long;
type Pointer_To_TYPEKIND is access all TYPEKIND;
-- Identifies TypeInfo Kind
SYS_WIN16 : constant := 0;
SYS_WIN32 : constant := 1;
SYS_MAC : constant := 2;
subtype SYSKIND is Interfaces.C.long;
type Pointer_TO_SYSKIND is access all SYSKIND;
-- Identifies system type
DESCKIND_NONE : constant := 0;
DESCKIND_FUNCDESC : constant := 1;
DESCKIND_VARDESC : constant := 2;
DESCKIND_TYPECOMP : constant := 3;
DESCKIND_IMPLICITAPPOBJ : constant := 4;
DESCKIND_MAX : constant := 5;
subtype DESCKIND is Interfaces.C.long;
type Pointer_To_DESCKIND is access all DESCKIND;
FUNC_VIRTUAL : constant := 0;
FUNC_PUREVIRTUAL : constant := 1;
FUNC_NONVIRTUAL : constant := 2;
FUNC_STATIC : constant := 3;
FUNC_DISPATCH : constant := 4;
subtype FUNCKIND is Interfaces.C.long;
type Pointer_To_FUNCKIND is access all FUNCKIND;
INVOKE_FUNC : constant := 1;
INVOKE_PROPERTYGET : constant := 2;
INVOKE_PROPERTYPUT : constant := 4;
INVOKE_PROPERTYPUTREF : constant := 8;
subtype INVOKEKIND is Interfaces.C.long;
type Pointer_To_INVOKEKIND is access all INVOKEKIND;
CC_FASTCALL : constant := 0;
CC_CDECL : constant := 1;
CC_MSCPASCAL : constant := 2;
CC_PASCAL : constant := 2;
CC_MACPASCAL : constant := 3;
CC_STDCALL : constant := 4;
CC_FPFASTCALL : constant := 5;
CC_SYSCALL : constant := 6;
CC_MPWCDECL : constant := 7;
CC_MPWPASCAL : constant := 8;
CC_MAX : constant := 9;
subtype CALLCONV is Interfaces.C.long;
type Pointer_To_CALLCONV is access all CALLCONV;
VAR_PERINSTANCE : constant := 0;
VAR_STATIC : constant := 1;
VAR_CONST : constant := 2;
VAR_DISPATCH : constant := 3;
subtype VARKIND is Interfaces.C.long;
type Pointer_To_VARKIND is access all VARKIND;
type TYPEDESC;
type Pointer_To_TYPEDESC is access all TYPEDESC;
type ARRAYDESC;
type Pointer_To_ARRAYDESC is access all ARRAYDESC;
subtype TYPEDESC_UNION_Range is Positive range 1 .. 3;
type TYPEDESC_UNION (Which : TYPEDESC_UNION_Range := 1) is
record
case Which is
when 1 =>
lptdesc : Pointer_To_TYPEDESC;
when 2 =>
lpadesc : Pointer_To_ARRAYDESC;
when 3 =>
hreftype : Interfaces.C.unsigned_long;
end case;
end record;
pragma Convention (C_Pass_By_Copy, TYPEDESC_UNION);
pragma Unchecked_Union (TYPEDESC_UNION);
type TYPEDESC is
record
u : TYPEDESC_UNION;
vt : VARTYPE;
end record;
pragma Convention (C_Pass_By_Copy, TYPEDESC);
type IDLDESC is
record
dwReserved : Interfaces.C.unsigned_long;
wIDLFlags : Interfaces.C.short;
end record;
pragma Convention (C_Pass_By_Copy, IDLDESC);
type Pointer_To_IDLDESC is access all IDLDESC;
type Pointer_To_Pointer_To_IDLDESC is access all Pointer_To_IDLDESC;
IMPLTYPEFLAG_FDEFAULT : constant := 1;
IMPLTYPEFLAG_FSOURCE : constant := 2;
IMPLTYPEFLAG_FRESTRICTED : constant := 4;
IMPLTYPEFLAG_FDEFAULTVTBL : constant := 8;
TYPEFLAG_FAPPOBJECT : constant := 1;
TYPEFLAG_FCANCREATE : constant := 2;
TYPEFLAG_FLICENSED : constant := 4;
TYPEFLAG_FPREDECLID : constant := 8;
TYPEFLAG_FHIDDEN : constant := 16;
TYPEFLAG_FCONTROL : constant := 32;
TYPEFLAG_FDUAL : constant := 64;
TYPEFLAG_FNONEXTENSIBLE : constant := 128;
TYPEFLAG_FOLEAUTOMATION : constant := 256;
type TYPEATTR is
record
guid : Types.GUID;
lcid : Interfaces.C.unsigned_long;
dwReserved : Interfaces.C.unsigned_long;
memidConstructor : Interfaces.C.long;
memidDestructor : Interfaces.C.long;
lpstrSchema : LPWSTR;
cbSizeInstance : Interfaces.C.unsigned_long;
TYPEKIND_Element : TYPEKIND;
cFuncs : Interfaces.C.short;
cVars : Interfaces.C.short;
cImplTypes : Interfaces.C.short;
cbSizeVft : Interfaces.C.short;
cbAlignment : Interfaces.C.short;
wTypeFlags : Interfaces.C.unsigned_short;
wMajorVerNum : Interfaces.C.short;
wMinorVerNum : Interfaces.C.short;
tdescAlias : TYPEDESC;
idldescType : IDLDESC;
end record;
pragma Convention (C_Pass_By_Copy, TYPEATTR);
type Pointer_To_TYPEATTR is access all TYPEATTR;
type Pointer_To_Pointer_To_TYPEATTR is access all Pointer_To_TYPEATTR;
type SAFEARRAYBOUND_Array is
array (Interfaces.C.short range 0 .. 255)
of aliased SAFEARRAYBOUND;
pragma Convention (C, SAFEARRAYBOUND_Array);
type ARRAYDESC is
record
tdescElem : TYPEDESC;
cDims : Interfaces.C.short;
rgbounds : SAFEARRAYBOUND_Array;
end record;
pragma Convention (C_Pass_By_Copy, ARRAYDESC);
PARAMFLAG_NONE : constant := 0;
PARAMFLAG_FIN : constant := 1;
PARAMFLAG_FOUT : constant := 2;
PARAMFLAG_FLCID : constant := 4;
PARAMFLAG_FRETVAL : constant := 8;
PARAMFLAG_FOPT : constant := 16;
PARAMFLAG_FHASDEFAULT : constant := 32;
type PARAMDESC is
record
lpVarValue : Pointer_To_VARIANT;
wParamFlags : Interfaces.C.unsigned_short;
end record;
pragma Convention (C_Pass_By_Copy, PARAMDESC);
type Pointer_To_PARAMDESC is access all PARAMDESC;
type ELEMDESC is
record
tdesc : TYPEDESC;
paramdesc : Types.PARAMDESC;
end record;
pragma Convention (C_Pass_By_Copy, ELEMDESC);
type Pointer_To_ELEMDESC is access all ELEMDESC;
type ELEMDESC_ARRAY is array (Interfaces.C.short range 0 .. 255) of
ELEMDESC;
type Pointer_To_ELEMDESC_ARRAY is access all ELEMDESC_ARRAY;
type FUNCDESC is
record
memid : Interfaces.C.long;
lprgscode : Pointer_To_SCODE;
lprgelemdescParam : Pointer_To_ELEMDESC_ARRAY;
funckind : Types.FUNCKIND;
invkind : INVOKEKIND;
callconv : Types.CALLCONV;
cParams : Interfaces.C.short;
cParamsOpt : Interfaces.C.short;
oVft : Interfaces.C.short;
cScodes : Interfaces.C.short;
elemdescFunc : ELEMDESC;
wFuncFlags : Interfaces.C.short;
end record;
pragma Convention (C_Pass_By_Copy, FUNCDESC);
type Pointer_To_FUNCDESC is access all FUNCDESC;
type Pointer_To_Pointer_To_FUNCDESC is access all Pointer_To_FUNCDESC;
subtype VARDESC_UNION_Range is Positive range 1 .. 2;
type VARDESC_UNION (Which : VARDESC_UNION_Range := 1) is
record
case Which is
when 1 =>
oInst : Interfaces.C.unsigned_long;
when 2 =>
lpvarValue : Pointer_To_VARIANT;
end case;
end record;
pragma Convention (C_Pass_By_Copy, VARDESC_UNION);
pragma Unchecked_Union (VARDESC_UNION);
VARFLAG_FREADONLY : constant := 1;
VARFLAG_FSOURCE : constant := 2;
VARFLAG_FBINDABLE : constant := 4;
VARFLAG_FREQUESTEDIT : constant := 8;
VARFLAG_FDISPLAYBIND : constant := 16;
VARFLAG_FDEFAULTBIND : constant := 32;
VARFLAG_FHIDDEN : constant := 64;
type VARDESC is
record
memid : Interfaces.C.long;
lpstrSchema : LPWSTR;
u : VARDESC_UNION;
elemdescVar : ELEMDESC;
wVarFlags : Interfaces.C.unsigned_short;
varkind : Types.VARKIND;
end record;
pragma Convention (C_Pass_By_Copy, VARDESC);
type Pointer_To_VARDESC is access all VARDESC;
type Pointer_To_Pointer_To_VARDESC is access all Pointer_To_VARDESC;
type TLIBATTR is
record
guid : Types.GUID;
lcid : Interfaces.C.unsigned_long;
syskind : Types.SYSKIND;
wMajorVerNum : Interfaces.C.short;
wMinorVerNum : Interfaces.C.short;
wLibFlags : Interfaces.C.short;
end record;
pragma Convention (C_Pass_By_Copy, TLIBATTR);
type Pointer_To_TLIBATTR is access all TLIBATTR;
type Pointer_To_Pointer_To_TLIBATTR is access all Pointer_To_TLIBATTR;
type LICINFO is
record
cbLicInfo : Interfaces.C.long;
fRuntimeKeyAvail : bool;
fLicVerified : bool;
end record;
pragma Convention (C_Pass_By_Copy, LICINFO);
type Pointer_To_LICINFO is access all LICINFO;
-- ITypeLib Interface
-- {00020402-0000-0000-C000-000000000046}
IID_ITypeLib : aliased GUID :=
(132098, 0, 0,
(C.unsigned_char'Val (192), C.unsigned_char'Val (0),
C.unsigned_char'Val (0), C.unsigned_char'Val (0),
C.unsigned_char'Val (0), C.unsigned_char'Val (0),
C.unsigned_char'Val (0), C.unsigned_char'Val (70)));
type af_ITypeLib_QueryInterface is access
function (This : access ITypeLib;
riid : in Pointer_To_GUID;
ppvObj : in Pointer_To_Pointer_To_Void)
return HRESULT;
pragma Convention (StdCall, af_ITypeLib_QueryInterface);
type af_ITypeLib_AddRef is access
function (This : access ITypeLib) return Interfaces.C.unsigned_long;
pragma Convention (StdCall, af_ITypeLib_AddRef);
type af_ITypeLib_Release is access
function (This : access ITypeLib) return Interfaces.C.unsigned_long;
pragma Convention (StdCall, af_ITypeLib_Release);
type af_ITypeLib_GetTypeInfoCount is access
function (This : access ITypeLib)
return HRESULT;
pragma Convention (StdCall, af_ITypeLib_GetTypeInfoCount);
type af_ITypeLib_GetTypeInfo is access
function (This : access ITypeLib;
index : in Interfaces.C.int;
ppTInfo : in Pointer_To_Pointer_To_ITypeInfo)
return HRESULT;
pragma Convention (StdCall, af_ITypeLib_GetTypeInfo);
type af_ITypeLib_GetTypeInfoType is access
function (This : access ITypeLib;
index : in Interfaces.C.int;
pTKind : in Pointer_To_TYPEKIND)
return HRESULT;
pragma Convention (StdCall, af_ITypeLib_GetTypeInfoType);
type af_ITypeLib_GetTypeInfoOfGuid is access
function (This : access ITypeLib;
guid : in Pointer_To_GUID;
ppTInfo : in Pointer_To_Pointer_To_ITypeInfo)
return HRESULT;
pragma Convention (StdCall, af_ITypeLib_GetTypeInfoOfGuid);
type af_ITypeLib_GetLibAttr is access
function (This : access ITypeLib;
ppTLibAttr : in Pointer_To_Pointer_To_TLIBATTR)
return HRESULT;
pragma Convention (StdCall, af_ITypeLib_GetLibAttr);
type af_ITypeLib_GetTypeComp is access
function (This : access ITypeLib;
ppTComp : in Pointer_To_Pointer_To_ITypeComp)
return HRESULT;
pragma Convention (StdCall, af_ITypeLib_GetTypeComp);
type af_ITypeLib_GetDocumentation is access
function (This : access ITypeLib;
index : in Interfaces.C.int;
pBstrName : in Pointer_To_BSTR;
pBstrDocString : in Pointer_To_BSTR;
pdwHelpContext : in Pointer_To_unsigned_long;
pBstrHelpFile : in Pointer_To_BSTR)
return HRESULT;
pragma Convention (StdCall, af_ITypeLib_GetDocumentation);
type af_ITypeLib_IsName is access
function (This : access ITypeLib;
szNameBuf : in LPWSTR;
lHashVal : in Interfaces.C.unsigned_long;
pfName : in Pointer_To_bool)
return HRESULT;
pragma Convention (StdCall, af_ITypeLib_IsName);
type af_ITypeLib_FindName is access
function (This : access ITypeLib;
szNameBuf : in LPWSTR;
lHashVal : in Interfaces.C.unsigned_long;
ppTInfo : in Pointer_To_Pointer_To_ITypeInfo;
rgMemId : in Pointer_To_long;
pcFound : in Pointer_To_int)
return HRESULT;
pragma Convention (StdCall, af_ITypeLib_FindName);
type af_ITypeLib_ReleaseTLibAttr is access
function (This : access ITypeLib;
pTLibAttr : Pointer_To_TLIBATTR)
return HRESULT;
pragma Convention (StdCall, af_ITypeLib_ReleaseTLibAttr);
type ITypeLibVtbl;
type Pointer_To_ITypeLibVtbl is access all ITypeLibVtbl;
type ITypeLib is
record
Vtbl : Pointer_To_ITypeLibVtbl;
end record;
pragma Convention (C_Pass_By_Copy, ITypeLib);
type ITypeLibVtbl is
record
QueryInterface : af_ITypeLib_QueryInterface;
AddRef : af_ITypeLib_AddRef;
Release : af_ITypeLib_Release;
GetTypeInfoCount : af_ITypeLib_GetTypeInfoCount;
GetTypeInfo : af_ITypeLib_GetTypeInfo;
GetTypeInfoType : af_ITypeLib_GetTypeInfoType;
GetTypeInfoOfGuid : af_ITypeLib_GetTypeInfoOfGuid;
GetLibAttr : af_ITypeLib_GetLibAttr;
GetTypeComp : af_ITypeLib_GetTypeComp;
GetDocumentation : af_ITypeLib_GetDocumentation;
IsName : af_ITypeLib_IsName;
FindName : af_ITypeLib_FindName;
ReleaseTLibAttr : af_ITypeLib_ReleaseTLibAttr;
end record;
pragma Convention (C_Pass_By_Copy, ITypeLibVtbl);
-- ITypeInfo Interface
-- {00020401-0000-0000-C000-000000000046}
IID_ITypeInfo : aliased GUID :=
(132097, 0, 0,
(C.unsigned_char'Val (192), C.unsigned_char'Val (0),
C.unsigned_char'Val (0), C.unsigned_char'Val (0),
C.unsigned_char'Val (0), C.unsigned_char'Val (0),
C.unsigned_char'Val (0), C.unsigned_char'Val (70)));
type af_ITypeInfo_QueryInterface is access
function (This : access ITypeInfo;
riid : in Pointer_To_GUID;
ppvObj : in Pointer_To_Pointer_To_Void)
return HRESULT;
pragma Convention (StdCall, af_ITypeInfo_QueryInterface);
type af_ITypeInfo_AddRef is access
function (This : access ITypeInfo) return Interfaces.C.unsigned_long;
pragma Convention (StdCall, af_ITypeInfo_AddRef);
type af_ITypeInfo_Release is access
function (This : access ITypeInfo) return Interfaces.C.unsigned_long;
pragma Convention (StdCall, af_ITypeInfo_Release);
type af_ITypeInfo_GetTypeAttr is access
function (This : access ITypeInfo;
ppTypeAttr : in Pointer_To_Pointer_To_TYPEATTR)
return HRESULT;
pragma Convention (StdCall, af_ITypeInfo_GetTypeAttr);
type af_ITypeInfo_GetTypeComp is access
function (This : access ITypeInfo;
ppTComp : in Pointer_To_Pointer_To_ITypeComp)
return HRESULT;
pragma Convention (StdCall, af_ITypeInfo_GetTypeComp);
type af_ITypeInfo_GetFuncDesc is access
function (This : access ITypeInfo;
index : in Interfaces.C.int;
ppFuncDesc : in Pointer_To_Pointer_To_FUNCDESC)
return HRESULT;
pragma Convention (StdCall, af_ITypeInfo_GetFuncDesc);
type af_ITypeInfo_GetVarDesc is access
function (This : access ITypeInfo;
index : in Interfaces.C.int;
ppVarDesc : in Pointer_To_Pointer_To_VARDESC)
return HRESULT;
pragma Convention (StdCall, af_ITypeInfo_GetVarDesc);
type af_ITypeInfo_GetNames is access
function (This : access ITypeInfo;
memid : in Interfaces.C.long;
rgBstrNames : in Pointer_To_BSTR_PARAM_ARRAY;
cMaxNames : in Interfaces.C.int;
pcNames : in Pointer_To_int)
return HRESULT;
pragma Convention (StdCall, af_ITypeInfo_GetNames);
type af_ITypeInfo_GetRefTypeOfImplType is access
function (This : access ITypeInfo;
index : in Interfaces.C.int;
pRefType : in Pointer_To_unsigned_long)
return HRESULT;
pragma Convention (StdCall, af_ITypeInfo_GetRefTypeOfImplType);
type af_ITypeInfo_GetImplTypeFlags is access
function (This : access ITypeInfo;
index : in Interfaces.C.int;
pImplTypeFlags : in Pointer_To_int)
return HRESULT;
pragma Convention (StdCall, af_ITypeInfo_GetImplTypeFlags);
type af_ITypeInfo_GetIDsOfNames is access
function (This : access ITypeInfo;
rgszNames : in Pointer_To_LPWSTR;
cNames : in Interfaces.C.int;
pMemId : in Pointer_To_long)
return HRESULT;
pragma Convention (StdCall, af_ITypeInfo_GetIDsOfNames);
type af_ITypeInfo_Invoke is access
function (This : access ITypeInfo;
pvInstance : in Pointer_To_Void;
memid : in Interfaces.C.long;
wFlags : in Interfaces.C.short;
pdispparams : in Pointer_To_DISPPARAMS;
pvarResult : in Pointer_To_VARIANT;
pexcepinfo : in Pointer_To_EXCEPINFO;
puArgErr : in Pointer_To_int)
return HRESULT;
pragma Convention (StdCall, af_ITypeInfo_Invoke);
type af_ITypeInfo_GetDocumentation is access
function (This : access ITypeInfo;
memid : in Interfaces.C.long;
pBstrName : in Pointer_To_BSTR;
pBstrDocString : in Pointer_To_BSTR;
pdwHelpContext : in Pointer_To_unsigned_long;
pBstrHelpFile : in Pointer_To_BSTR)
return HRESULT;
pragma Convention (StdCall, af_ITypeInfo_GetDocumentation);
type af_ITypeInfo_GetDllEntry is access
function (This : access ITypeInfo;
memid : in Interfaces.C.long;
invkind : in INVOKEKIND;
pBstrDllName : in Pointer_To_BSTR;
pBstrName : in Pointer_To_BSTR;
pwOrdinal : in Pointer_To_short)
return HRESULT;
pragma Convention (StdCall, af_ITypeInfo_GetDllEntry);
type af_ITypeInfo_GetRefTypeInfo is access
function (This : access ITypeInfo;
hreftype : in Interfaces.C.unsigned_long;
ppTInfo : in Pointer_To_Pointer_To_ITypeInfo)
return HRESULT;
pragma Convention (StdCall, af_ITypeInfo_GetRefTypeInfo);
type af_ITypeInfo_AddressOfMember is access
function (This : access ITypeInfo;
memid : in Interfaces.C.long;
invkind : in INVOKEKIND;
ppv : in Pointer_To_Pointer_To_Void)
return HRESULT;
pragma Convention (StdCall, af_ITypeInfo_AddressOfMember);
type af_ITypeInfo_CreateInstance is access
function (This : access ITypeInfo;
riid : in Pointer_To_GUID;
ppvObj : in Pointer_To_Pointer_To_IUnknown)
return HRESULT;
pragma Convention (StdCall, af_ITypeInfo_CreateInstance);
type af_ITypeInfo_GetMops is access
function (This : access ITypeInfo;
memid : in Interfaces.C.long;
pBstrMops : in Pointer_To_BSTR)
return HRESULT;
pragma Convention (StdCall, af_ITypeInfo_GetMops);
type af_ITypeInfo_GetContainingTypeLib is access
function (This : access ITypeInfo;
ppTLib : in Pointer_To_Pointer_To_ITypeLib;
pIndex : in Pointer_To_int)
return HRESULT;
pragma Convention (StdCall, af_ITypeInfo_GetContainingTypeLib);
type af_ITypeInfo_ReleaseTypeAttr is access
function (This : access ITypeInfo;
pTypeAttr : in Pointer_To_TYPEATTR)
return HRESULT;
pragma Convention (StdCall, af_ITypeInfo_ReleaseTypeAttr);
type af_ITypeInfo_ReleaseFuncDesc is access
function (This : access ITypeInfo;
pFuncDesc : in Pointer_To_FUNCDESC)
return HRESULT;
pragma Convention (StdCall, af_ITypeInfo_ReleaseFuncDesc);
type af_ITypeInfo_ReleaseVarDesc is access
function (This : access ITypeInfo;
pVarDesc : in Pointer_To_VARDESC)
return HRESULT;
pragma Convention (StdCall, af_ITypeInfo_ReleaseVarDesc);
type ITypeInfoVtbl;
type Pointer_To_ITypeInfoVtbl is access all ITypeInfoVtbl;
type ITypeInfo is
record
Vtbl : Pointer_To_ITypeInfoVtbl;
end record;
pragma Convention (C_Pass_By_Copy, ITypeInfo);
type ITypeInfoVtbl is
record
QueryInterface : af_ITypeInfo_QueryInterface;
AddRef : af_ITypeInfo_AddRef;
Release : af_ITypeInfo_Release;
GetTypeAttr : af_ITypeInfo_GetTypeAttr;
GetTypeComp : af_ITypeInfo_GetTypeComp;
GetFuncDesc : af_ITypeInfo_GetFuncDesc;
GetVarDesc : af_ITypeInfo_GetVarDesc;
GetNames : af_ITypeInfo_GetNames;
GetRefTypeOfImplType : af_ITypeInfo_GetRefTypeOfImplType;
GetImplTypeFlags : af_ITypeInfo_GetImplTypeFlags;
GetIDsOfNames : af_ITypeInfo_GetIDsOfNames;
Invoke : af_ITypeInfo_Invoke;
GetDocumentation : af_ITypeInfo_GetDocumentation;
GetDllEntry : af_ITypeInfo_GetDllEntry;
GetRefTypeInfo : af_ITypeInfo_GetRefTypeInfo;
AddressOfMember : af_ITypeInfo_AddressOfMember;
CreateInstance : af_ITypeInfo_CreateInstance;
GetMops : af_ITypeInfo_GetMops;
GetContainingTypeLib : af_ITypeInfo_GetContainingTypeLib;
ReleaseTypeAttr : af_ITypeInfo_ReleaseTypeAttr;
ReleaseFuncDesc : af_ITypeInfo_ReleaseFuncDesc;
ReleaseVarDesc : af_ITypeInfo_ReleaseVarDesc;
end record;
pragma Convention (C_Pass_By_Copy, ITypeInfoVtbl);
-- ITypeComp Interface
-- {00020403-0000-0000-C000-000000000046}
IID_ITypeComp : aliased GUID :=
(132099, 0, 0,
(C.unsigned_char'Val (192), C.unsigned_char'Val (0),
C.unsigned_char'Val (0), C.unsigned_char'Val (0),
C.unsigned_char'Val (0), C.unsigned_char'Val (0),
C.unsigned_char'Val (0), C.unsigned_char'Val (70)));
type af_ITypeComp_QueryInterface is access
function (This : access ITypeComp;
riid : in Pointer_To_GUID;
ppvObj : in Pointer_To_Pointer_To_Void)
return HRESULT;
pragma Convention (StdCall, af_ITypeComp_QueryInterface);
type af_ITypeComp_AddRef is access
function (This : access ITypeComp) return Interfaces.C.unsigned_long;
pragma Convention (StdCall, af_ITypeComp_AddRef);
type af_ITypeComp_Release is access
function (This : access ITypeComp) return Interfaces.C.unsigned_long;
pragma Convention (StdCall, af_ITypeComp_Release);
type af_ITypeComp_Bind is access
function (This : access ITypeComp;
szName : in LPWSTR;
lHashVal : in Interfaces.C.unsigned_long;
wFlags : in Interfaces.C.short;
ppTInfo : in Pointer_To_Pointer_To_ITypeInfo;
pDescKind : in Pointer_To_DESCKIND;
ppFuncDesc : in Pointer_To_Pointer_To_FUNCDESC;
ppVarDesc : in Pointer_To_Pointer_To_VARDESC;
ppTypeComp : in Pointer_To_Pointer_To_ITypeComp)
return HRESULT;
pragma Convention (StdCall, af_ITypeComp_Bind);
type af_ITypeComp_BindType is access
function (This : access ITypeComp;
SzName : in LPWSTR;
lHashVal : in Interfaces.C.unsigned_long;
ppTInfo : in Pointer_To_Pointer_To_ITypeInfo)
return HRESULT;
pragma Convention (StdCall, af_ITypeComp_BindType);
type ITypeCompVtbl;
type Pointer_To_ITypeCompVtbl is access all ITypeCompVtbl;
type ITypeComp is
record
Vtbl : Pointer_To_ITypeCompVtbl;
end record;
pragma Convention (C_Pass_By_Copy, ITypeComp);
type ITypeCompVtbl is
record
QueryInterface : af_ITypeComp_QueryInterface;
AddRef : af_ITypeComp_AddRef;
Release : af_ITypeComp_Release;
Bind : af_ITypeComp_Bind;
BindType : af_ITypeComp_BindType;
end record;
pragma Convention (C_Pass_By_Copy, ITypeCompVtbl);
-- ICreateTypeInfo
-- {00020405-0000-0000-C000-000000000046}
IID_ICreateTypeInfo : GUID :=
(16#00020405#, 16#0000#, 16#0000#,
(C.unsigned_char'Val (16#C0#), C.unsigned_char'Val (16#00#),
C.unsigned_char'Val (16#00#), C.unsigned_char'Val (16#00#),
C.unsigned_char'Val (16#00#), C.unsigned_char'Val (16#00#),
C.unsigned_char'Val (16#00#), C.unsigned_char'Val (16#46#)));
type af_ICreateTypeInfo_QueryInterface is access
function (This : access ICreateTypeInfo;
riid : Pointer_To_GUID;
ppvObj : Pointer_To_Pointer_To_Void)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeInfo_QueryInterface);
type af_ICreateTypeInfo_AddRef is access
function (This : access ICreateTypeInfo)
return Interfaces.C.unsigned_long;
pragma Convention (StdCall, af_ICreateTypeInfo_AddRef);
type af_ICreateTypeInfo_Release is access
function (This : access ICreateTypeInfo)
return Interfaces.C.unsigned_long;
pragma Convention (StdCall, af_ICreateTypeInfo_Release);
type af_ICreateTypeInfo_SetGuid is access
function (This : access ICreateTypeInfo;
guid : Pointer_To_GUID)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeInfo_SetGuid);
type af_ICreateTypeInfo_SetTypeFlags is access
function (This : access ICreateTypeInfo;
uTypeFlags : Interfaces.C.unsigned)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeInfo_SetTypeFlags);
type af_ICreateTypeInfo_SetDocString is access
function (This : access ICreateTypeInfo;
pStrDoc : LPWSTR)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeInfo_SetDocString);
type af_ICreateTypeInfo_SetHelpContext is access
function (This : access ICreateTypeInfo;
dwHelpContext : Interfaces.C.unsigned_long)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeInfo_SetHelpContext);
type af_ICreateTypeInfo_SetVersion is access
function (This : access ICreateTypeInfo;
wMajorVerNum : Interfaces.C.unsigned_short;
wMinorVerNum : Interfaces.C.unsigned_short)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeInfo_SetVersion);
type af_ICreateTypeInfo_AddRefTypeInfo is access
function (This : access ICreateTypeInfo;
pTInfo : Pointer_To_ITypeInfo;
phRefType : Pointer_To_unsigned_long)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeInfo_AddRefTypeInfo);
type af_ICreateTypeInfo_AddFuncDesc is access
function (This : access ICreateTypeInfo;
index : Interfaces.C.unsigned;
pFuncDesc : Pointer_To_FUNCDESC)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeInfo_AddFuncDesc);
type af_ICreateTypeInfo_AddImplType is access
function (This : access ICreateTypeInfo;
index : Interfaces.C.unsigned;
hreftype : Interfaces.C.unsigned_long)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeInfo_AddImplType);
type af_ICreateTypeInfo_SetImplTypeFlags is access
function (This : access ICreateTypeInfo;
index : Interfaces.C.unsigned;
implTypeFlags : Interfaces.C.int)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeInfo_SetImplTypeFlags);
type af_ICreateTypeInfo_SetAlignment is access
function (This : access ICreateTypeInfo;
cbAlignment : Interfaces.C.unsigned_short)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeInfo_SetAlignment);
type af_ICreateTypeInfo_SetSchema is access
function (This : access ICreateTypeInfo;
pStrSchema : LPWSTR)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeInfo_SetSchema);
type af_ICreateTypeInfo_AddVarDesc is access
function (This : access ICreateTypeInfo;
index : Interfaces.C.unsigned;
pVarDesc : Pointer_To_VARDESC)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeInfo_AddVarDesc);
type af_ICreateTypeInfo_SetFuncAndParamNames is access
function (This : access ICreateTypeInfo;
index : Interfaces.C.unsigned;
rgszNames : Pointer_To_LPWSTR;
cNames : Interfaces.C.unsigned)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeInfo_SetFuncAndParamNames);
type af_ICreateTypeInfo_SetVarName is access
function (This : access ICreateTypeInfo;
index : Interfaces.C.unsigned;
szName : LPWSTR)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeInfo_SetVarName);
type af_ICreateTypeInfo_SetTypeDescAlias is access
function (This : access ICreateTypeInfo;
pTDescAlias : Pointer_To_TYPEDESC)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeInfo_SetTypeDescAlias);
type af_ICreateTypeInfo_DefineFuncAsDllEntry is access
function (This : access ICreateTypeInfo;
index : Interfaces.C.unsigned;
szDllName : LPWSTR;
szProcName : LPWSTR)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeInfo_DefineFuncAsDllEntry);
type af_ICreateTypeInfo_SetFuncDocString is access
function (This : access ICreateTypeInfo;
index : Interfaces.C.unsigned;
szDocString : LPWSTR)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeInfo_SetFuncDocString);
type af_ICreateTypeInfo_SetVarDocString is access
function (This : access ICreateTypeInfo;
index : Interfaces.C.unsigned;
szDocString : LPWSTR)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeInfo_SetVarDocString);
type af_ICreateTypeInfo_SetFuncHelpContext is access
function (This : access ICreateTypeInfo;
index : Interfaces.C.unsigned;
dwHelpContext : Interfaces.C.unsigned_long)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeInfo_SetFuncHelpContext);
type af_ICreateTypeInfo_SetVarHelpContext is access
function (This : access ICreateTypeInfo;
index : Interfaces.C.unsigned;
dwHelpContext : Interfaces.C.unsigned_long)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeInfo_SetVarHelpContext);
type af_ICreateTypeInfo_SetMops is access
function (This : access ICreateTypeInfo;
index : Interfaces.C.unsigned;
bstrMops : BSTR)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeInfo_SetMops);
type af_ICreateTypeInfo_SetTypeIdldesc is access
function (This : access ICreateTypeInfo;
pIdlDesc : Pointer_To_IDLDESC)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeInfo_SetTypeIdldesc);
type af_ICreateTypeInfo_LayOut is access
function (This : access ICreateTypeInfo)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeInfo_LayOut);
type ICreateTypeInfoVtbl;
type Pointer_To_ICreateTypeInfoVtbl is access all ICreateTypeInfoVtbl;
type ICreateTypeInfo is
record
Vtbl : Pointer_To_ICreateTypeInfoVtbl;
end record;
pragma Convention (C_Pass_By_Copy, ICreateTypeInfo);
type ICreateTypeInfoVtbl is
record
QueryInterface : af_ICreateTypeInfo_QueryInterface;
AddRef : af_ICreateTypeInfo_AddRef;
Release : af_ICreateTypeInfo_Release;
SetGuid : af_ICreateTypeInfo_SetGuid;
SetTypeFlags : af_ICreateTypeInfo_SetTypeFlags;
SetDocString : af_ICreateTypeInfo_SetDocString;
SetHelpContext : af_ICreateTypeInfo_SetHelpContext;
SetVersion : af_ICreateTypeInfo_SetVersion;
AddRefTypeInfo : af_ICreateTypeInfo_AddRefTypeInfo;
AddFuncDesc : af_ICreateTypeInfo_AddFuncDesc;
AddImplType : af_ICreateTypeInfo_AddImplType;
SetImplTypeFlags : af_ICreateTypeInfo_SetImplTypeFlags;
SetAlignment : af_ICreateTypeInfo_SetAlignment;
SetSchema : af_ICreateTypeInfo_SetSchema;
AddVarDesc : af_ICreateTypeInfo_AddVarDesc;
SetFuncAndParamNames : af_ICreateTypeInfo_SetFuncAndParamNames;
SetVarName : af_ICreateTypeInfo_SetVarName;
SetTypeDescAlias : af_ICreateTypeInfo_SetTypeDescAlias;
DefineFuncAsDllEntry : af_ICreateTypeInfo_DefineFuncAsDllEntry;
SetFuncDocString : af_ICreateTypeInfo_SetFuncDocString;
SetVarDocString : af_ICreateTypeInfo_SetVarDocString;
SetFuncHelpContext : af_ICreateTypeInfo_SetFuncHelpContext;
SetVarHelpContext : af_ICreateTypeInfo_SetVarHelpContext;
SetMops : af_ICreateTypeInfo_SetMops;
SetTypeIdldesc : af_ICreateTypeInfo_SetTypeIdldesc;
LayOut : af_ICreateTypeInfo_LayOut;
end record;
pragma Convention (C_Pass_By_Copy, ICreateTypeInfoVtbl);
-- ICreateTypeLib
-- {00020406-0000-0000-C000-000000000046}
IID_ICreateTypeLib : aliased GUID :=
(16#00020406#, 16#0000#, 16#0000#,
(C.unsigned_char'Val (16#C0#), C.unsigned_char'Val (16#00#),
C.unsigned_char'Val (16#00#), C.unsigned_char'Val (16#00#),
C.unsigned_char'Val (16#00#), C.unsigned_char'Val (16#00#),
C.unsigned_char'Val (16#00#), C.unsigned_char'Val (16#46#)));
type af_ICreateTypeLib_QueryInterface is access
function (This : access ICreateTypeLib;
riid : Pointer_To_GUID;
ppvObj : Pointer_To_Pointer_To_Void)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeLib_QueryInterface);
type af_ICreateTypeLib_AddRef is access
function (This : access ICreateTypeLib)
return Interfaces.C.unsigned_long;
pragma Convention (StdCall, af_ICreateTypeLib_AddRef);
type af_ICreateTypeLib_Release is access
function (This : access ICreateTypeLib)
return Interfaces.C.unsigned_long;
pragma Convention (StdCall, af_ICreateTypeLib_Release);
type af_ICreateTypeLib_CreateTypeInfo is access
function (This : access ICreateTypeLib;
szName : LPWSTR;
tkind : TYPEKIND;
ppCTInfo : Pointer_To_Pointer_To_ICreateTypeInfo)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeLib_CreateTypeInfo);
type af_ICreateTypeLib_SetName is access
function (This : access ICreateTypeLib;
szName : LPWSTR)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeLib_SetName);
type af_ICreateTypeLib_SetVersion is access
function (This : access ICreateTypeLib;
wMajorVerNum : Interfaces.C.unsigned_short;
wMinorVerNum : Interfaces.C.unsigned_short)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeLib_SetVersion);
type af_ICreateTypeLib_SetGuid is access
function (This : access ICreateTypeLib;
guid : Pointer_To_GUID)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeLib_SetGuid);
type af_ICreateTypeLib_SetDocString is access
function (This : access ICreateTypeLib;
szDoc : LPWSTR)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeLib_SetDocString);
type af_ICreateTypeLib_SetHelpFileName is access
function (This : access ICreateTypeLib;
szHelpFileName : LPWSTR)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeLib_SetHelpFileName);
type af_ICreateTypeLib_SetHelpContext is access
function (This : access ICreateTypeLib;
dwHelpContext : Interfaces.C.unsigned_long)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeLib_SetHelpContext);
type af_ICreateTypeLib_SetLcid is access
function (This : access ICreateTypeLib;
lcid : Interfaces.C.unsigned_long)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeLib_SetLcid);
type af_ICreateTypeLib_SetLibFlags is access
function (This : access ICreateTypeLib;
uLibFlags : Interfaces.C.unsigned)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeLib_SetLibFlags);
type af_ICreateTypeLib_SaveAllChanges is access
function (This : access ICreateTypeLib)
return HRESULT;
pragma Convention (StdCall, af_ICreateTypeLib_SaveAllChanges);
type ICreateTypeLibVtbl;
type Pointer_To_ICreateTypeLibVtbl is access all ICreateTypeLibVtbl;
type ICreateTypeLib is
record
Vtbl : Pointer_To_ICreateTypeLibVtbl;
end record;
pragma Convention (C_Pass_By_Copy, ICreateTypeLib);
type ICreateTypeLibVtbl is
record
QueryInterface : af_ICreateTypeLib_QueryInterface;
AddRef : af_ICreateTypeLib_AddRef;
Release : af_ICreateTypeLib_Release;
CreateTypeInfo : af_ICreateTypeLib_CreateTypeInfo;
SetName : af_ICreateTypeLib_SetName;
SetVersion : af_ICreateTypeLib_SetVersion;
SetGuid : af_ICreateTypeLib_SetGuid;
SetDocString : af_ICreateTypeLib_SetDocString;
SetHelpFileName : af_ICreateTypeLib_SetHelpFileName;
SetHelpContext : af_ICreateTypeLib_SetHelpContext;
SetLcid : af_ICreateTypeLib_SetLcid;
SetLibFlags : af_ICreateTypeLib_SetLibFlags;
SaveAllChanges : af_ICreateTypeLib_SaveAllChanges;
end record;
pragma Convention (C_Pass_By_Copy, ICreateTypeLibVtbl);
-- IClassFactory2 Interface
-- {B196B28F-BAB4-101A-B69C-00AA00341D07}
IID_IClassFactory2 : aliased GUID :=
(16#B196B28F#, 16#BAB4#, 16#101A#,
(C.unsigned_char'Val (16#B6#), C.unsigned_char'Val (16#9C#),
C.unsigned_char'Val (16#00#), C.unsigned_char'Val (16#AA#),
C.unsigned_char'Val (16#00#), C.unsigned_char'Val (16#34#),
C.unsigned_char'Val (16#1D#), C.unsigned_char'Val (16#07#)));
type af_IClassFactory2_QueryInterface is access
function (This : access IClassFactory2;
riid : in Pointer_To_GUID;
ppvObj : in Pointer_To_Pointer_To_Void)
return HRESULT;
pragma Convention (StdCall, af_IClassFactory2_QueryInterface);
type af_IClassFactory2_AddRef is access
function (This : access IClassFactory2) return Interfaces.C.unsigned_long;
pragma Convention (StdCall, af_IClassFactory2_AddRef);
type af_IClassFactory2_Release is access
function (This : access IClassFactory2) return Interfaces.C.unsigned_long;
pragma Convention (StdCall, af_IClassFactory2_Release);
type af_IClassFactory2_CreateInstance is access
function (This : access IClassFactory2;
pUnkOuter : in Pointer_To_IUnknown;
riid : in Pointer_To_GUID;
ppvObject : in Pointer_To_Pointer_To_Void)
return HRESULT;
pragma Convention (Stdcall, af_IClassFactory2_CreateInstance);
type af_IClassFactory2_LockServer is access
function (This : access IClassFactory2;
fLock : in bool)
return HRESULT;
pragma Convention (Stdcall, af_IClassFactory2_LockServer);
type af_IClassFactory2_GetLicInfo is access
function (This : access IClassFactory2;
pLicInfo : in Pointer_To_LICINFO)
return HRESULT;
pragma Convention (Stdcall, af_IClassFactory2_GetLicInfo);
type af_IClassFactory2_RequestLicKey is access
function (This : access IClassFactory2;
dwReserved : in DWORD;
pLicInfo : in Pointer_To_BSTR)
return HRESULT;
pragma Convention (Stdcall, af_IClassFactory2_RequestLicKey);
type af_IClassFactory2_CreateInstanceLic is access
function (This : access IClassFactory2;
pUnkOuter : in Pointer_To_IUnknown;
pUnkReserved : in Pointer_To_IUnknown;
riid : in Pointer_To_GUID;
bstrKey : in BSTR;
ppv : in Pointer_To_Pointer_To_Void)
return HRESULT;
pragma Convention (Stdcall, af_IClassFactory2_CreateInstanceLic);
type IClassFactory2Vtbl;
type Pointer_To_IClassFactory2Vtbl is access all IClassFactory2Vtbl;
type IClassFactory2 is
record
Vtbl : Pointer_To_IClassFactory2Vtbl;
end record;
pragma Convention (C_Pass_By_Copy, IClassFactory2);
type IClassFactory2Vtbl is
record
QueryInterface : af_IClassFactory2_QueryInterface;
AddRef : af_IClassFactory2_AddRef;
Release : af_IClassFactory2_Release;
CreateInstance : af_IClassFactory2_CreateInstance;
LockServer : af_IClassFactory2_LockServer;
GetLicInfo : af_IClassFactory2_GetLicInfo;
RequestLicKey : af_IClassFactory2_RequestLicKey;
CreateInstanceLic : af_IClassFactory2_CreateInstanceLic;
end record;
pragma Convention (C_Pass_By_Copy, IClassFactory2Vtbl);
-- IClassFactory Interface
-- {B196B28F-BAB4-101A-B69C-00AA00341D07}
IID_IClassFactory : aliased GUID :=
(16#00000001#, 16#0000#, 16#0000#,
(C.unsigned_char'Val (16#C0#), C.unsigned_char'Val (16#00#),
C.unsigned_char'Val (16#00#), C.unsigned_char'Val (16#00#),
C.unsigned_char'Val (16#00#), C.unsigned_char'Val (16#00#),
C.unsigned_char'Val (16#00#), C.unsigned_char'Val (16#46#)));
type af_IClassFactory_QueryInterface is access
function (This : access IClassFactory;
riid : in Pointer_To_GUID;
ppvObj : in Pointer_To_Pointer_To_Void)
return HRESULT;
pragma Convention (StdCall, af_IClassFactory_QueryInterface);
type af_IClassFactory_AddRef is access
function (This : access IClassFactory) return Interfaces.C.unsigned_long;
pragma Convention (StdCall, af_IClassFactory_AddRef);
type af_IClassFactory_Release is access
function (This : access IClassFactory) return Interfaces.C.unsigned_long;
pragma Convention (StdCall, af_IClassFactory_Release);
type af_IClassFactory_CreateInstance is access
function (This : access IClassFactory;
pUnkOuter : in Pointer_To_IUnknown;
riid : in Pointer_To_GUID;
ppvObject : in Pointer_To_Pointer_To_Void)
return HRESULT;
pragma Convention (Stdcall, af_IClassFactory_CreateInstance);
type af_IClassFactory_LockServer is access
function (This : access IClassFactory;
fLock : in bool)
return HRESULT;
pragma Convention (Stdcall, af_IClassFactory_LockServer);
type IClassFactoryVtbl;
type Pointer_To_IClassFactoryVtbl is access all IClassFactoryVtbl;
type IClassFactory is
record
Vtbl : Pointer_To_IClassFactoryVtbl;
end record;
pragma Convention (C_Pass_By_Copy, IClassFactory);
type IClassFactoryVtbl is
record
QueryInterface : af_IClassFactory_QueryInterface;
AddRef : af_IClassFactory_AddRef;
Release : af_IClassFactory_Release;
CreateInstance : af_IClassFactory_CreateInstance;
LockServer : af_IClassFactory_LockServer;
end record;
pragma Convention (C_Pass_By_Copy, IClassFactoryVtbl);
-- IConnectionPointContainer Interface
-- {B196B284-BAB4-101A-B69C-00AA00341D07}
IID_IConnectionPointContainer : aliased GUID :=
(2979443332, 47796, 4122,
(C.unsigned_char'Val (182), C.unsigned_char'Val (156),
C.unsigned_char'Val (0), C.unsigned_char'Val (170),
C.unsigned_char'Val (0), C.unsigned_char'Val (52),
C.unsigned_char'Val (29), C.unsigned_char'Val (7)));
type af_IConnectionPointContainer_QueryInterface is access
function (This : access IConnectionPointContainer;
riid : Pointer_To_GUID;
ppvObj : Pointer_To_Pointer_To_Void)
return HRESULT;
pragma Convention (StdCall, af_IConnectionPointContainer_QueryInterface);
type af_IConnectionPointContainer_AddRef is access
function (This : access IConnectionPointContainer)
return Interfaces.C.unsigned_long;
pragma Convention (StdCall, af_IConnectionPointContainer_AddRef);
type af_IConnectionPointContainer_Release is access
function (This : access IConnectionPointContainer)
return Interfaces.C.unsigned_long;
pragma Convention (StdCall, af_IConnectionPointContainer_Release);
type af_IConnectionPointContainer_EnumConnectionPoints is access
function (This : access IConnectionPointContainer;
ppEnum : Pointer_To_Pointer_To_IEnumConnectionPoints)
return HRESULT;
pragma Convention
(StdCall, af_IConnectionPointContainer_EnumConnectionPoints);
type af_IConnectionPointContainer_FindConnectionPoint is access
function (This : access IConnectionPointContainer;
riid : Pointer_To_GUID;
ppCP : Pointer_To_Pointer_To_IConnectionPoint)
return HRESULT;
pragma Convention
(StdCall, af_IConnectionPointContainer_FindConnectionPoint);
type IConnectionPointContainerVtbl;
type Pointer_To_IConnectionPointContainerVtbl is
access all IConnectionPointContainerVtbl;
type IConnectionPointContainer is
record
Vtbl : Pointer_To_IConnectionPointContainerVtbl;
end record;
pragma Convention (C_Pass_By_Copy, IConnectionPointContainer);
type IConnectionPointContainerVtbl is
record
QueryInterface : af_IConnectionPointContainer_QueryInterface;
AddRef : af_IConnectionPointContainer_AddRef;
Release : af_IConnectionPointContainer_Release;
EnumConnectionPoints :
af_IConnectionPointContainer_EnumConnectionPoints;
FindConnectionPoint :
af_IConnectionPointContainer_FindConnectionPoint;
end record;
pragma Convention (C_Pass_By_Copy, IConnectionPointContainerVtbl);
-- IEnumConnectionPoints Interface
-- {B196B285-BAB4-101A-B69C-00AA00341D07}
IID_IEnumConnectionPoints : aliased GUID :=
(2979443333, 47796, 4122,
(C.unsigned_char'Val (182), C.unsigned_char'Val (156),
C.unsigned_char'Val (0), C.unsigned_char'Val (170),
C.unsigned_char'Val (0), C.unsigned_char'Val (52),
C.unsigned_char'Val (29), C.unsigned_char'Val (7)));
type af_IEnumConnectionPoints_QueryInterface is access
function (This : access IEnumConnectionPoints;
riid : Pointer_To_GUID;
ppvObj : Pointer_To_Pointer_To_Void)
return HRESULT;
pragma Convention (StdCall, af_IEnumConnectionPoints_QueryInterface);
type af_IEnumConnectionPoints_AddRef is access
function (This : access IEnumConnectionPoints)
return Interfaces.C.unsigned_long;
pragma Convention (StdCall, af_IEnumConnectionPoints_AddRef);
type af_IEnumConnectionPoints_Release is access
function (This : access IEnumConnectionPoints)
return Interfaces.C.unsigned_long;
pragma Convention (StdCall, af_IEnumConnectionPoints_Release);
type af_IEnumConnectionPoints_Next is access
function (This : access IEnumConnectionPoints;
cConnections : Interfaces.C.unsigned_long;
rgpcn : Pointer_To_Pointer_To_IConnectionPoint;
lpcFetched : Pointer_To_Void)
return HRESULT;
pragma Convention (StdCall, af_IEnumConnectionPoints_Next);
type af_IEnumConnectionPoints_Skip is access
function (This : access IEnumConnectionPoints;
cConnections : Interfaces.C.unsigned_long)
return HRESULT;
pragma Convention (StdCall, af_IEnumConnectionPoints_Skip);
type af_IEnumConnectionPoints_Reset is access
function (This : access IEnumConnectionPoints) return HRESULT;
pragma Convention (StdCall, af_IEnumConnectionPoints_Reset);
type af_IEnumConnectionPoints_Clone is access
function (This : access IEnumConnectionPoints;
ppEnum : Pointer_To_Pointer_To_IEnumConnectionPoints)
return HRESULT;
pragma Convention (StdCall, af_IEnumConnectionPoints_Clone);
type IEnumConnectionPointsVtbl;
type Pointer_To_IEnumConnectionPointsVtbl is
access all IEnumConnectionPointsVtbl;
type IEnumConnectionPoints is
record
Vtbl : Pointer_To_IEnumConnectionPointsVtbl;
end record;
pragma Convention (C_Pass_By_Copy, IEnumConnectionPoints);
type IEnumConnectionPointsVtbl is
record
QueryInterface : af_IEnumConnectionPoints_QueryInterface;
AddRef : af_IEnumConnectionPoints_AddRef;
Release : af_IEnumConnectionPoints_Release;
Next : af_IEnumConnectionPoints_Next;
Skip : af_IEnumConnectionPoints_Skip;
Reset : af_IEnumConnectionPoints_Reset;
Clone : af_IEnumConnectionPoints_Clone;
end record;
pragma Convention (C_Pass_By_Copy, IEnumConnectionPointsVtbl);
-- IConnectionPoint Interface
-- {B196B286-BAB4-101A-B69C-00AA00341D07}
IID_IConnectionPoint : aliased GUID :=
(2979443334, 47796, 4122,
(C.unsigned_char'Val (182), C.unsigned_char'Val (156),
C.unsigned_char'Val (0), C.unsigned_char'Val (170),
C.unsigned_char'Val (0), C.unsigned_char'Val (52),
C.unsigned_char'Val (29), C.unsigned_char'Val (7)));
type af_IConnectionPoint_QueryInterface is access
function (This : access IConnectionPoint;
riid : Pointer_To_GUID;
ppvObj : Pointer_To_Pointer_To_Void)
return HRESULT;
pragma Convention (StdCall, af_IConnectionPoint_QueryInterface);
type af_IConnectionPoint_AddRef is access
function (This : access IConnectionPoint)
return Interfaces.C.unsigned_long;
pragma Convention (StdCall, af_IConnectionPoint_AddRef);
type af_IConnectionPoint_Release is access
function (This : access IConnectionPoint)
return Interfaces.C.unsigned_long;
pragma Convention (StdCall, af_IConnectionPoint_Release);
type af_IConnectionPoint_GetConnectionInterface is access
function (This : access IConnectionPoint;
piid : Pointer_To_GUID)
return HRESULT;
pragma Convention (StdCall, af_IConnectionPoint_GetConnectionInterface);
type af_IConnectionPoint_GetConnectionPointContainer is access
function (This : access IConnectionPoint;
ppCPC : Pointer_To_Pointer_To_IConnectionPointContainer)
return HRESULT;
pragma Convention (StdCall,
af_IConnectionPoint_GetConnectionPointContainer);
type af_IConnectionPoint_Advise is access
function (This : access IConnectionPoint;
PUnkSink : Pointer_To_IUnknown;
pdwCookie : Pointer_To_unsigned_long)
return HRESULT;
pragma Convention (StdCall, af_IConnectionPoint_Advise);
type af_IConnectionPoint_Unadvise is access
function (This : access IConnectionPoint;
dwCookie : Interfaces.C.unsigned_long)
return HRESULT;
pragma Convention (StdCall, af_IConnectionPoint_Unadvise);
type af_IConnectionPoint_EnumConnections is access
function (This : access IConnectionPoint;
ppEnum : Pointer_To_Pointer_To_IEnumConnections)
return HRESULT;
pragma Convention (StdCall, af_IConnectionPoint_EnumConnections);
type IConnectionPointVtbl;
type Pointer_To_IConnectionPointVtbl is
access all IConnectionPointVtbl;
type IConnectionPoint is
record
Vtbl : Pointer_To_IConnectionPointVtbl;
end record;
pragma Convention (C_Pass_By_Copy, IConnectionPoint);
type IConnectionPointVtbl is
record
QueryInterface : af_IConnectionPoint_QueryInterface;
AddRef : af_IConnectionPoint_AddRef;
Release : af_IConnectionPoint_Release;
GetConnectionInterface :
af_IConnectionPoint_GetConnectionInterface;
GetConnectionPointContainer :
af_IConnectionPoint_GetConnectionPointContainer;
Advise : af_IConnectionPoint_Advise;
Unadvise : af_IConnectionPoint_Unadvise;
EnumConnections : af_IConnectionPoint_EnumConnections;
end record;
pragma Convention (C_Pass_By_Copy, IConnectionPointVtbl);
type CONNECTDATA is
record
punk : Pointer_To_IUnknown;
dwCookie : Interfaces.C.unsigned_long;
end record;
pragma Convention (C_Pass_By_Copy, CONNECTDATA);
type Pointer_To_CONNECTDATA is access all CONNECTDATA;
-- IEnumConnections Interface
-- {B196B287-BAB4-101A-B69C-00AA00341D07}
IID_IEnumConnections : aliased GUID :=
(2979443335, 47796, 4122,
(C.unsigned_char'Val (182), C.unsigned_char'Val (156),
C.unsigned_char'Val (0), C.unsigned_char'Val (170),
C.unsigned_char'Val (0), C.unsigned_char'Val (52),
C.unsigned_char'Val (29), C.unsigned_char'Val (7)));
type af_IEnumConnections_QueryInterface is access
function (This : access IEnumConnections;
riid : Pointer_To_GUID;
ppvObj : Pointer_To_Pointer_To_Void)
return HRESULT;
pragma Convention (StdCall, af_IEnumConnections_QueryInterface);
type af_IEnumConnections_AddRef is access
function (This : access IEnumConnections)
return Interfaces.C.unsigned_long;
pragma Convention (StdCall, af_IEnumConnections_AddRef);
type af_IEnumConnections_Release is access
function (This : access IEnumConnections)
return Interfaces.C.unsigned_long;
pragma Convention (StdCall, af_IEnumConnections_Release);
type af_IEnumConnections_Next is access
function (This : access IEnumConnections;
cConnections : Interfaces.C.unsigned_long;
rgcd : Pointer_To_CONNECTDATA;
LpcFetched : Pointer_To_Void)
return HRESULT;
pragma Convention (StdCall, af_IEnumConnections_Next);
type af_IEnumConnections_Skip is access
function (This : access IEnumConnections;
cConnections : Interfaces.C.unsigned_long)
return HRESULT;
pragma Convention (StdCall, af_IEnumConnections_Skip);
type af_IEnumConnections_Reset is access
function (This : access IEnumConnections)
return HRESULT;
pragma Convention (StdCall, af_IEnumConnections_Reset);
type af_IEnumConnections_Clone is access
function (This : access IEnumConnections;
ppEnum : Pointer_To_Pointer_To_IEnumConnections)
return HRESULT;
pragma Convention (StdCall, af_IEnumConnections_Clone);
type IEnumConnectionsVtbl;
type Pointer_To_IEnumConnectionsVtbl is
access all IEnumConnectionsVtbl;
type IEnumConnections is
record
Vtbl : Pointer_To_IEnumConnectionsVtbl;
end record;
pragma Convention (C_Pass_By_Copy, IEnumConnections);
type IEnumConnectionsVtbl is
record
QueryInterface : af_IEnumConnections_QueryInterface;
AddRef : af_IEnumConnections_AddRef;
Release : af_IEnumConnections_Release;
Next : af_IEnumConnections_Next;
Skip : af_IEnumConnections_Skip;
Reset : af_IEnumConnections_Reset;
Clone : af_IEnumConnections_Clone;
end record;
pragma Convention (C_Pass_By_Copy, IEnumConnectionsVtbl);
-- IEnumVARIANT Interface
-- {00020404-0000-0000-C000-000000000046}
IID_IEnumVARIANT : aliased GUID :=
(132100, 0, 0,
(C.unsigned_char'Val (192), C.unsigned_char'Val (0),
C.unsigned_char'Val (0), C.unsigned_char'Val (0),
C.unsigned_char'Val (0), C.unsigned_char'Val (0),
C.unsigned_char'Val (0), C.unsigned_char'Val (70)));
type af_IEnumVARIANT_QueryInterface is access
function (This : access IEnumVARIANT;
riid : Pointer_To_GUID;
ppvObj : Pointer_To_Pointer_To_Void)
return HRESULT;
pragma Convention (StdCall, af_IEnumVARIANT_QueryInterface);
type af_IEnumVARIANT_AddRef is access
function (This : access IEnumVARIANT)
return Interfaces.C.unsigned_long;
pragma Convention (StdCall, af_IEnumVARIANT_AddRef);
type af_IEnumVARIANT_Release is access
function (This : access IEnumVARIANT)
return Interfaces.C.unsigned_long;
pragma Convention (StdCall, af_IEnumVARIANT_Release);
type af_IEnumVARIANT_Next is access
function (This : access IEnumVARIANT;
celt : Interfaces.C.long;
rgvar : access VARIANT;
pceltFetched : access Interfaces.C.long)
return HRESULT;
pragma Convention (StdCall, af_IEnumVARIANT_Next);
type af_IEnumVARIANT_Skip is access
function (This : access IEnumVARIANT;
celt : Interfaces.C.long)
return HRESULT;
pragma Convention (StdCall, af_IEnumVARIANT_Skip);
type af_IEnumVARIANT_Reset is access
function (This : access IEnumVARIANT)
return HRESULT;
pragma Convention (StdCall, af_IEnumVARIANT_Reset);
type af_IEnumVARIANT_Clone is access
function (This : access IEnumVARIANT;
ppenum : access Pointer_To_IEnumVARIANT)
return HRESULT;
pragma Convention (StdCall, af_IEnumVARIANT_Clone);
type IEnumVARIANTVtbl;
type Pointer_To_IEnumVARIANTVtbl is access all IEnumVARIANTVtbl;
type IEnumVARIANT is
record
Vtbl : Pointer_To_IEnumVARIANTVtbl;
end record;
pragma Convention (C_Pass_By_Copy, IEnumVARIANT);
type IEnumVARIANTVtbl is
record
QueryInterface : af_IEnumVARIANT_QueryInterface;
AddRef : af_IEnumVARIANT_AddRef;
Release : af_IEnumVARIANT_Release;
Next : af_IEnumVARIANT_Next;
Skip : af_IEnumVARIANT_Skip;
Reset : af_IEnumVARIANT_Reset;
Clone : af_IEnumVARIANT_Clone;
end record;
pragma Convention (C_Pass_By_Copy, IEnumVARIANTVtbl);
-- StdGlobalInterfaceTable CoClass
-- {00000323-0000-0000-C000-000000000046}
CLSID_StdGlobalInterfaceTable : aliased GUID :=
(803, 0, 0,
(C.unsigned_char'Val (192), C.unsigned_char'Val (0),
C.unsigned_char'Val (0), C.unsigned_char'Val (0),
C.unsigned_char'Val (0), C.unsigned_char'Val (0),
C.unsigned_char'Val (0), C.unsigned_char'Val (70)));
-- IGlobalInterfaceTable Interface
-- {00000146-0000-0000-C000-000000000046}
IID_IGlobalInterfaceTable : aliased GUID :=
(326, 0, 0,
(C.unsigned_char'Val (192), C.unsigned_char'Val (0),
C.unsigned_char'Val (0), C.unsigned_char'Val (0),
C.unsigned_char'Val (0), C.unsigned_char'Val (0),
C.unsigned_char'Val (0), C.unsigned_char'Val (70)));
type af_IGlobalInterfaceTable_QueryInterface is access
function (This : access IGlobalInterfaceTable;
riid : Pointer_To_GUID;
ppvObj : Pointer_To_Pointer_To_Void)
return HRESULT;
pragma Convention (StdCall, af_IGlobalInterfaceTable_QueryInterface);
type af_IGlobalInterfaceTable_AddRef is access
function (This : access IGlobalInterfaceTable)
return Interfaces.C.unsigned_long;
pragma Convention (StdCall, af_IGlobalInterfaceTable_AddRef);
type af_IGlobalInterfaceTable_Release is access
function (This : access IGlobalInterfaceTable)
return Interfaces.C.unsigned_long;
pragma Convention (StdCall, af_IGlobalInterfaceTable_Release);
type af_IGlobalInterfaceTable_RegisterInterfaceInGlobal is access
function (This : access IGlobalInterfaceTable;
pUnk : Pointer_To_IUnknown;
riid : Pointer_To_GUID;
pdwCookie : Pointer_To_unsigned_long)
return HRESULT;
pragma Convention (StdCall,
af_IGlobalInterfaceTable_RegisterInterfaceInGlobal);
type af_IGlobalInterfaceTable_RevokeInterfaceFromGlobal is access
function (This : access IGlobalInterfaceTable;
dwCookie : Interfaces.C.unsigned_long)
return HRESULT;
pragma Convention (StdCall,
af_IGlobalInterfaceTable_RevokeInterfaceFromGlobal);
type af_IGlobalInterfaceTable_GetInterfaceFromGlobal is access
function (This : access IGlobalInterfaceTable;
dwCookie : Interfaces.C.unsigned_long;
riid : Pointer_To_GUID;
ppv : Pointer_To_Pointer_To_Void)
return HRESULT;
pragma Convention (StdCall,
af_IGlobalInterfaceTable_GetInterfaceFromGlobal);
type IGlobalInterfaceTableVtbl;
type Pointer_To_IGlobalInterfaceTableVtbl is
access all IGlobalInterfaceTableVtbl;
type IGlobalInterfaceTable is
record
Vtbl : Pointer_To_IGlobalInterfaceTableVtbl;
end record;
pragma Convention (C_Pass_By_Copy, IGlobalInterfaceTable);
type IGlobalInterfaceTableVtbl is
record
QueryInterface : af_IGlobalInterfaceTable_QueryInterface;
AddRef : af_IGlobalInterfaceTable_AddRef;
Release : af_IGlobalInterfaceTable_Release;
RegisterInterfaceInGlobal :
af_IGlobalInterfaceTable_RegisterInterfaceInGlobal;
RevokeInterfaceFromGlobal :
af_IGlobalInterfaceTable_RevokeInterfaceFromGlobal;
GetInterfaceFromGlobal :
af_IGlobalInterfaceTable_GetInterfaceFromGlobal;
end record;
pragma Convention (C_Pass_By_Copy, IGlobalInterfaceTableVtbl);
end GNATCOM.Types;