Home COM GDI+ WebBrowser Data Access

ITableData Interface

 

IID_ITableData

{00020316-0000-0000-C000-000000000046}

 

 

The ITableData interface provides utility methods for working with tables. Table data objects or objects that implement ITableData are provided by MAPI to help service providers perform table maintenance. To obtain a table data object, service providers call the CreateTable function.

 

The MAPI implementation of ITableData works with tables by holding all of the data and any associated restrictions in memory, making it unsuitable for use with very large tables. Large restrictions and complex operations such as categorization are unsupported.

 

Table data objects identify rows using an index column a property that is guaranteed to have a unique value for each row. Most service providers use the PR_INSTANCE_KEY property as the index column. Multivalued properties cannot be used as an index column.

 

Table data objects generate a single notification regardless of the number of rows affected by a change or deletion. If a target row in an operation does not exist, a row is added.

 

 

Methods in VTable order

IUnknown Methods

Description

QueryInterface

Returns pointers to supported interfaces.

AddRef

Increments reference count.

Release

Decrements reference count.

ITableData Methods

Description

HrGetView

Creates a table view, returning a pointer to an IMAPITable implementation.

HrModifyRow

Inserts a new table row, possibly replacing an existing row.

HrDeleteRow

Deletes a table row.

HrQueryRow

Retrieves a table row.

HrEnumRow

Retrieves a row based on its position in the table.

HrNotify

Sends a notification for a table row.

HrInsertRow

Inserts a table row.

HrModifyRows

Inserts multiple table rows, possibly replacing existing rows.

HrDeleteRows

Deletes multiple table rows.

 

HrGetView

 

FUNCTION ITableData_HrGetView ( _
  BYVAL pITableData AS DWORD PTR _
, BYREF lpSSortOrderSet AS SSortOrderSet _
, BYVAL lpfCallerRelease AS DWORD _
, BYVAL ulCallerData AS DWORD _
, BYREF lppMAPITable AS DWORD _
  ) AS LONG

  LOCAL HRESULT AS LONG
  CALL DWORD @@pITableData[3] USING ITableData_HrGetView (pITableData, lpSSortOrderSet, lpfCallerRelease, ulCallerData, lppMAPITable) TO HRESULT
  FUNCTION = HRESULT

END FUNCTION

 

 

HrModifyRow

 

FUNCTION ITableData_HrModifyRow ( _
  BYVAL pITableData AS DWORD PTR _
, BYREF lpSRow AS SRow _
  ) AS LONG

  LOCAL HRESULT AS LONG
  CALL DWORD @@pITableData[4] USING ITableData_HrModifyRow (pITableData, lpSRow) TO HRESULT
  FUNCTION = HRESULT

END FUNCTION

 

 

HrDeleteRow

 

FUNCTION ITableData_HrDeleteRow ( _
  BYVAL pITableData AS DWORD PTR _
, BYREF lpSPropValue AS SPropValue _
  ) AS LONG

  LOCAL HRESULT AS LONG
  CALL DWORD @@pITableData[5] USING ITableData_HrDeleteRow (pITableData, lpSPropValue) TO HRESULT
  FUNCTION = HRESULT

END FUNCTION

 

 

HrQueryRow

 

FUNCTION ITableData_HrQueryRow ( _
  BYVAL pITableData AS DWORD PTR _
, BYREF lpSPropValue AS SPropValue _
, BYREF lppSRow AS SRow _
, BYREF lpuliRow AS DWORD _
  ) AS LONG

  LOCAL HRESULT AS LONG
  CALL DWORD @@pITableData[6] USING ITableData_HrQueryRow (pITableData, lpSPropValue, lppSRow, lpuliRow) TO HRESULT
  FUNCTION = HRESULT

END FUNCTION

 

 

HrEnumRow

 

FUNCTION ITableData_HrEnumRow ( _
  BYVAL pITableData AS DWORD PTR _
, BYVAL ulRowNumber AS DWORD _
, BYREF lppSRow AS SRow _
  ) AS LONG

  LOCAL HRESULT AS LONG
  CALL DWORD @@pITableData[7] USING ITableData_HrEnumRow (pITableData, ulRowNumber, lppSRow) TO HRESULT
  FUNCTION = HRESULT

END FUNCTION

 

 

HrNotify

 

FUNCTION ITableData_HrNotify ( _
  BYVAL pITableData AS DWORD PTR _
, BYVAL ulFlags AS DWORD _
, BYVAL cValues AS DWORD _
, BYREF lpSPropValue AS SPropValue _
  ) AS LONG

  LOCAL HRESULT AS LONG
  CALL DWORD @@pITableData[8] USING ITableData_HrNotify (pITableData, ulFlags, cValues, lpSPropValue) TO HRESULT
  FUNCTION = HRESULT

END FUNCTION

 

 

HrInsertRow

 

FUNCTION ITableData_HrInsertRow ( _
  BYVAL pITableData AS DWORD PTR _
, BYVAL uliRow AS DWORD _
, BYREF lpSRow AS SRow _
  ) AS LONG

  LOCAL HRESULT AS LONG
  CALL DWORD @@pITableData[9] USING ITableData_HrInsertRow (pITableData, uliRow, lpSRow) TO HRESULT
  FUNCTION = HRESULT

END FUNCTION

 

 

HrModifyRows

 

FUNCTION ITableData_HrModifyRows ( _
  BYVAL pITableData AS DWORD PTR _
, BYVAL ulFlags AS DWORD _
, BYREF lpSRowSet AS SRowSet _
  ) AS LONG

  LOCAL HRESULT AS LONG
  CALL DWORD @@pITableData[10] USING ITableData_HrModifyRows (pITableData, ulFlags, lpSRowSet) TO HRESULT
  FUNCTION = HRESULT

END FUNCTION

 

 

HrDeleteRows

 

FUNCTION ITableData_HrDeleteRows ( _
  BYVAL pITableData AS DWORD PTR _
, BYVAL ulFlags AS DWORD _
, BYREF lprowsetToDelete AS SRowSet _
, BYREF cRowsDeleted AS DWORD _
  ) AS LONG

  LOCAL HRESULT AS LONG
  CALL DWORD @@pITableData[11] USING ITableData_HrDeleteRows (pITableData, ulFlags, lprowsetToDelete, cRowsDeleted) TO HRESULT
  FUNCTION = HRESULT

END FUNCTION

 

 

Page last updated on Monday, 03 April 2006 20:19:01 +0200