Home COM GDI+ WebBrowser Data Access

IRecordInfo Interface

 

IID_IRecordInfo

{0000002F-0000-0000-C000-000000000046}

 

 

IRecordInfo describes the structure of a particular UDT. You can use IRecordInfo any time you need to access the description of UDTs contained in type libraries. IRecordInfo can be reused as needed; there can be many instances of the UDT for a single IRecordInfo pointer.

 

You only need to use IRecordInfo to pass a UDT by reference that is stored in a VARIANT. If the UDT is not stored in a VARIANT you can pass a pointer to the UDT because an IRecordInfo pointer can be retrieved from the UDT type description.

 

IRecordInfo is used to get the amount of storage needed for a UDT, clear the storage for a UDT, copy or access the fields in a UDT. However, the layout of a UDT is the same as the layout of structures in C++, therefore you may not have to use IRecordInfo for clearing, copying and accessing the fields of the storage.

 

 

Methods in VTable order

IUnknown Methods

Description

QueryInterface

Returns pointers to supported interfaces.

AddRef

Increments reference count.

Release

Decrements reference count.

IRecordInfo Methods

Description

RecordInit

Initializes a new instance of a record.

RecordClear

Releases object references and other values of a record without deallocating the record.

RecordCopy

Copies an existing record into the passed in buffer.

GetGuid

Gets the GUID of the record type.

GetName

Gets the name of the record type.

GetSize

Gets the size of the record instance.

GetTypeInfo

Gets the TypeInfo that describes the record.

GetField

Returns a pointer to the value of a given field name.

GetFieldNoCopy

Returns a pointer to the value of a given field name without copying the value and allocating resources.

PutField

Puts a variant into a field.

PutFieldNoCopy

Passes ownership of those resources to the assigned field by placing the actual resources into the field.

GetFieldNames

Gets the names of the fields of the record.

IsMatchingType

Determines if the record that is passed in matches that of the current record information.

RecordCreate

Allocates memory for a new record, initializes the instance and returns a pointer to the record.

RecordCreateCopy

Creates a copy of an instance of a record to the specified location.

RecordDestroy

Releases the resources and deallocates the memory of the record.

 

RecordInit

 

FUNCTION IRecordInfo_RecordInit ( _

  BYVAL pthis AS DWORD PTR _

, BYREF pvNew AS DWORD _

  ) AS LONG

  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[3] USING IRecordInfo_RecordInit (pthis, pvNew) TO HRESULT
  FUNCTION = HRESULT


END FUNCTION

 

 

RecordClear

 

FUNCTION IRecordInfo_RecordClear ( _

  BYVAL pthis AS DWORD PTR _

, BYVAL pvExisting AS DWORD _

  ) AS LONG

  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[4] USING IRecordInfo_RecordClear(pthis, pvExisting) TO HRESULT
  FUNCTION = HRESULT


END FUNCTION

 

 

RecordCopy

 

FUNCTION IRecordInfo_RecordCopy ( _

  BYVAL pthis AS DWORD PTR _

, BYVAL pvExisting AS DWORD _

, BYREF pvNew AS DWORD _

  ) AS LONG

  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[5] USING IRecordInfo_RecordCopy (pthis, pvExisting, pvNew) TO HRESULT
  FUNCTION = HRESULT


END FUNCTION

 

 

GetGuid

 

FUNCTION IRecordInfo_GetGuid ( _

  BYVAL pthis AS DWORD PTR _

, BYREF pguid AS GUID _

  ) AS LONG

  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[6] USING IRecordInfo_GetGuid (pthis, pguid) TO HRESULT
  FUNCTION = HRESULT


END FUNCTION

 

 

GetName

 

FUNCTION IRecordInfo_GetName ( _

  BYVAL pthis AS DWORD PTR _

, BYREF bstrName AS STRING _

  ) AS LONG

  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[7] USING IRecordInfo_GetName (pthis, bstrName) TO HRESULT

  strName = ACODE$(strName)
  FUNCTION = HRESULT


END FUNCTION

 

 

GetSize

 

FUNCTION IRecordInfo_GetSize ( _

  BYVAL pthis AS DWORD PTR _

, BYREF pcbSize AS DWORD _

  ) AS LONG

  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[8] USING IRecordInfo_GetSize (pthis, pcbSize) TO HRESULT
  FUNCTION = HRESULT


END FUNCTION

 

 

GetTypeInfo

 

FUNCTION IRecordInfo_GetTypeInfo ( _

  BYVAL pthis AS DWORD PTR _

, BYREF ppTypeInfo AS DWORD _

  ) AS LONG

  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[9] USING IRecordInfo_GetTypeInfo (pthis, ppTypeInfo) TO HRESULT
  FUNCTION = HRESULT


END FUNCTION

 

 

GetField

 

FUNCTION IRecordInfo_GetField ( _

  BYVAL pthis AS DWORD PTR _

, BYVAL pvData AS DWORD _

, BYVAL strFieldName AS STRING _

, BYREF pvarField AS VARIANT _

  ) AS LONG

  LOCAL HRESULT AS LONG
  strFieldName = UCODE$(strFieldName & $NUL)
  CALL DWORD @@pthis[10] USING IRecordInfo_GetField (pthis, pvData, strFieldName, pvarField) TO HRESULT
  FUNCTION = HRESULT


END FUNCTION

 

 

GetFieldNoCopy

 

FUNCTION IRecordInfo_GetFieldNoCopy ( _

  BYVAL pthis AS DWORD PTR _

, BYVAL pvData AS DWORD _

, BYVAL strFieldName AS STRING _

, BYREF pvarField AS VARIANT _

, BYREF ppvDataCArray AS DWORD _

  ) AS LONG

  LOCAL HRESULT AS LONG
  strFieldName = UCODE$(strFieldName & $NUL)
  CALL DWORD @@pthis[11] USING IRecordInfo_GetFieldNoCopy (pthis, pvData, strFieldName, pvarField, ppvDataCArray) TO HRESULT
  FUNCTION = HRESULT


END FUNCTION

 

 

PutField

 

FUNCTION IRecordInfo_PutField ( _

  BYVAL pthis AS DWORD PTR _

, BYVAL wFlags AS DWORD _

, BYREF pvData AS DWORD _

, BYVAL strFieldName AS STRING _

, BYVAL pvarField AS VARIANT _

  ) AS LONG

  LOCAL HRESULT AS LONG
  strFieldName = UCODE$(strFieldName & $NUL)
  CALL DWORD @@pthis[12] USING IRecordInfo_PutField (pthis, wFlags, pvData, strFieldName, pvarField) TO HRESULT
  FUNCTION = HRESULT


END FUNCTION

 

 

PutFieldNoCopy

 

FUNCTION IRecordInfo_PutFieldNoCopy ( _

  BYVAL pthis AS DWORD PTR _

, BYVAL wFlags AS DWORD _

, BYREF pvData AS DWORD -

, BYVAL strFieldName AS STRING _

, BYVAL pvarField AS VARIANT _

  ) AS LONG

  LOCAL HRESULT AS LONG
  strFieldName = UCODE$(strFieldName & $NUL)
  CALL DWORD @@pthis[13] USING IRecordInfo_PutFieldNoCopy (pthis, wFlags, pvData, strFieldName, pvarField) TO HRESULT
  FUNCTION = HRESULT


END FUNCTION

 

 

GetFieldNames

 

FUNCTION IRecordInfo_GetFieldNames ( _

  BYVAL pthis AS DWORD PTR _

, BYREF pcNames AS DWORD _

, BYVAL rgbstrNames AS DWORD _

  ) AS LONG

  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[14] USING IRecordInfo_GetFieldNames (pthis, pcNames, rgbstrNames) TO HRESULT
  FUNCTION = HRESULT


END FUNCTION

 

 

IsMatchingType

 

FUNCTION IRecordInfo_IsMatchingType ( _

  BYVAL pthis AS DWORD PTR _

, BYVAL pRecordInfo AS DWORD _

  ) AS LONG

  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[15] USING IRecordInfo_IsMatchingType (pthis, pRecordInfo) TO HRESULT
  FUNCTION = HRESULT


END FUNCTION

 

 

RecordCreate

 

FUNCTION IRecordInfo_RecordCreate ( _

  BYVAL pthis AS DWORD PTR _

  ) AS LONG

  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[16] USING IRecordInfo_RecordCreate (pthis) TO HRESULT
  FUNCTION = HRESULT


END FUNCTION

 

 

RecordCreateCopy

 

FUNCTION IRecordInfo_RecordCreateCopy ( _

  BYVAL pthis AS DWORD PTR _

, BYVAL pvSource AS DWORD _

, BYREF ppvDest AS DWORD _

  ) AS LONG

  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[17] USING IRecordInfo_RecordCreateCopy (pthis, pvSource, ppvDest) TO HRESULT
  FUNCTION = HRESULT


END FUNCTION

 

 

RecordDestroy

 

FUNCTION IRecordInfo_RecordDestroy ( _

  BYVAL pthis AS DWORD PTR _

, BYVAL pvRecord AS DWORD _

  ) AS LONG

  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[18] USING IRecordInfo_RecordDestroy (pthis, pvRecord) TO HRESULT
  FUNCTION = HRESULT


END FUNCTION

 

 

Page last updated on Monday, 27 March 2006 12:51:43 +0100