It has come to our attention that a handful of functions exposed in the MAPI Stub Library don’t have documentation in the Outlook 2010 MAPI Reference. We’re working on correcting that, but in the meantime, here are the functions and some basic documentation of what they do.
Update: All of these now have articles in the MSDN:
Searches for a specified property in a property set.
Implemented by:
LPSPropValue LpValFindProp( ULONG ulPropTag, ULONG cValues, LPSPropValue lpPropArray );
LPSPropValue LpValFindProp(
ULONG ulPropTag,
ULONG cValues,
LPSPropValue lpPropArray
);
Return Value LpValFindProp returns an SPropValue structure defining the property that matches the input propert tag, and NULL if there is no match.
Remarks LpValFindProp is functionally identical to PpropFindProp.
Determines the code page for a TNEF stream.
HRESULT GetTnefStreamCodepage ( LPSTREAM lpStream, ULONG FAR * lpulCodepage, ULONG FAR * lpulSubCodepage);
HRESULT GetTnefStreamCodepage (
LPSTREAM lpStream,
ULONG FAR * lpulCodepage,
ULONG FAR * lpulSubCodepage);
Remarks GetTnefStreamCodepage reads the attOemCodepage attribute of the TNEF stream to determine the code page and sub code page. If attOemCodepage is not found, will return a code page of 437 and a subcodepage of 0.
Adds one unsigned 64-bit integer to another, optionally using a carry flag.
FILETIME FtAdcFt( FILETIME ft1, FILETIME ft2, WORD FAR *pwCarry);
FILETIME FtAdcFt(
FILETIME ft1,
FILETIME ft2,
WORD FAR *pwCarry);
Return Value The FtAdcFt function returns a FILETIME structure that contains the sum of the two integers. The two input parameters remain unchanged. If pwCarry is non-NULL, it will contain the carry result for the sum, either 0 or 1.
Remarks FtAdcFt is functionally identical to FtAddFt when pwCarry is NULL. If pwCarry is non-NULL and points to 0, FtAdcFt will return the same FILETIME value which FtAddFt would return.
Adds or moves columns to the beginning of an existing table.
HRESULT HrAddColumns( LPMAPITABLE lptbl, LPSPropTagArray lpproptagColumnsNew, LPALLOCATEBUFFER lpAllocateBuffer, LPFREEBUFFER lpFreeBuffer);
HRESULT HrAddColumns(
LPMAPITABLE lptbl,
LPSPropTagArray lpproptagColumnsNew,
LPALLOCATEBUFFER lpAllocateBuffer,
LPFREEBUFFER lpFreeBuffer);
Remarks HrAddColumns is functionally equivalent to HrAddColumnsEx with lpfnFilterColumns set to NULL.
Verifies that the calling process has read access to the specified range of memory.
BOOL IsBadBoundedStringPtr( const void FAR* lpsz, UINT cchMax);
BOOL IsBadBoundedStringPtr(
const void FAR* lpsz,
UINT cchMax);
Return Value If the calling process has read access to all characters up to the string's terminating null character or up to the number of characters specified by cchMax, the return value is zero. If the calling process does not have read access to all characters up to the string's terminating null character or up to the number of characters specified by cchMax, the return value is nonzero.
Remarks IsBadBoundedStringPtr is functionally equivalent to IsBadStringPtr.
Enjoy!