windows-nt/Source/XPSP1/NT/shell/ext/docprop/internal.h
2020-09-26 16:20:57 +08:00

109 lines
3.5 KiB
C

////////////////////////////////////////////////////////////////////////////////
//
// Internal.h
//
// MS Office Internal Interfaces. These interfaces are not supported
// for client code.
//
// Change history:
//
// Date Who What
// --------------------------------------------------------------------------
// 07/13/94 B. Wentz Created file
//
////////////////////////////////////////////////////////////////////////////////
#ifndef __Internal_h__
#define __Internal_h__
#include "offcapi.h"
#include "proptype.h"
// Flag to | into Id's passed to Summary and Document Summary objects
// to get a real pointer to data, not a copy.
#define PTRWIZARD 0x1000
// Flag to | into flags passed to User-defined property streams to get
// a real pointer to the data, not a copy.
#define UD_PTRWIZARD 0x0002
#ifdef __cplusplus
extern TEXT("C") {
#endif
// Create a UDPROP structure.
LPUDPROP LpudpropCreate ( void );
// Free a UDPROP structure.
VOID VUdpropFree (LPUDPROP *lplpudp);
// Create a temporary copy of the User-Defined property data
BOOL FMakeTmpUDProps (LPUDOBJ lpUDObj);
// Swap the "temp" copy with the real copy of User-Defined property data
BOOL FSwapTmpUDProps (LPUDOBJ lpUDObj);
// Delete the "temp" copy of the data
BOOL FDeleteTmpUDProps (LPUDOBJ lpUDObj);
// Look up a node in the UD props
LPUDPROP PASCAL LpudpropFindMatchingName (LPUDOBJ lpUDObj, LPTSTR lpsz);
BOOL FSumInfoCreate (LPSIOBJ FAR *lplpSIObj, const void *prglpfn[]);
BOOL FDocSumCreate (LPDSIOBJ FAR *lplpDSIObj, const void *prglpfn[]);
BOOL FUserDefCreate (LPUDOBJ FAR *lplpUDObj, const void *prglpfn[]);
// Clear the data stored in the object, but do not destroy the object
BOOL FSumInfoClear (LPSIOBJ lpSIObj);
// Destroy the object
BOOL FSumInfoDestroy (LPSIOBJ FAR *lplpSIObj);
// Clear the data stored in the object, but do not destroy the object
BOOL FDocSumClear (LPDSIOBJ lpDSIObj);
// Destroy the given object.
BOOL FDocSumDestroy (LPDSIOBJ FAR *lplpDSIObj);
// Clear the data stored in object, but do not destroy the object.
BOOL FUserDefClear (LPUDOBJ lpUDObj);
// Destroy object,
BOOL FUserDefDestroy (LPUDOBJ FAR *lplp);
// Misc internal calls & defines
// Maximum number of dictionary hash table buckets.
#define DICTHASHMAX 20
void PASCAL FreeUDData (LPUDOBJ lpUDObj, BOOL fTmp);
BOOL PASCAL FAddPropToList (LPUDOBJ lpUDObj, LPPROPVARIANT lppropvar, STATPROPSTG *lpstatpropstg, LPUDPROP lpudprop);
void PASCAL AddNodeToList (LPUDOBJ lpUDObj, LPUDPROP lpudprop);
BOOL PASCAL FUserDefIteratorSetLink (LPUDOBJ lpUDObj, LPUDITER lpUDIter, LPTSTR lpszLink);
LPUDITER PASCAL LpudiUserDefCreateIterFromLpudp (LPUDOBJ lpUDObj, LPUDPROP lpudp);
//
// THIS SHOULD BE USED WHEN COPYING DATA TO BUFFER PROVIDED BY APP
//
BOOL PASCAL FCopyValueToBuf (LPVOID lpvBuf, DWORD cbMax, LPVOID lpv, UDTYPES udtype);
//
// FOR INTERNAL USE ONLY. THIS FUNCTION ALLOCATES MEMORY
//
LPVOID PASCAL LpvCopyValue (LPVOID *lplpvBuf, DWORD cbMax, LPVOID lpv, UDTYPES udtype, BOOL fFromLpstz, BOOL fToLpstz);
void PASCAL DeallocValue (LPVOID *lplpvBuf, UDTYPES udtype);
// flpstz -- TRUE if lpstz is an OLE Prop lpstz DWORD-DWORD-bytes
// -- FALSE if lpstz is a regular lpsz
BOOL PASCAL FConvertDate (LPTSTR lpstz, LPFILETIME lpft);
BOOL WINAPI FInitFakeKernel32();
VOID PASCAL VFtToSz(LPFILETIME lpft, LPTSTR psz, WORD cbMax, BOOL fMinutes);
#ifdef __cplusplus
}; // extern "C"
#endif
#endif // __Internal_h__