30 #include "wine/list.h" 65 ALLOCATEMORE *lpMore,
LPVOID lpOrig)
70 TRACE(
"(%p,%p,%p,%p)\n", lpDest, lpSrc, lpMore, lpOrig);
147 lpNextStr += ulStrLen;
162 lpNextStr += ulStrLen;
217 TRACE(
"(%p)\n", lpProp);
266 ulRet *=
sizeof(
WCHAR);
302 TRACE(
"(%p,%p,0x%08x)\n", lpHaystack, lpNeedle, ulFuzzy);
326 if (dwNeedleLen <= dwHaystackLen &&
340 while ((lpStr = pStrChrFn(lpStr, *lpNeedle->
Value.
lpszA)) !=
NULL)
342 dwHaystackLen -= (lpStr - lpHaystack->
Value.
lpszA);
343 if (dwNeedleLen <= dwHaystackLen &&
403 TRACE(
"(%p,%d,%p)\n", lpPropLeft, ulOp, lpPropRight);
410 FIXME(
"Comparison operator RELOP_RE not yet implemented!\n");
445 TRACE(
"(%p->0x%08x,%p->0x%08x)\n", lpPropLeft, lpPropLeft->
ulPropTag,
489 return (lpPropLeft->
Value.
b ? 1 : 0) - (lpPropRight->
Value.
b ? 1 : 0);
541 TRACE(
"(%p,%d,%p)\n", lpIProp, ulPropTag, lppProp);
570 TRACE(
"(%p,%p)\n", lpIProp, lpProp);
596 TRACE(
"(%p,%d)\n", lpIProp, ulPropTag);
641 TRACE(
"(%p,%d,%d)\n", lpProps, cValues, ulPropTag);
643 if (lpProps && cValues)
646 for (
i = 0;
i < cValues;
i++)
649 (lpProps[
i].ulPropTag == ulPropTag ||
671 TRACE(
"(%p)\n", lpAddrs);
690 TRACE(
"(%p)\n", lpRowSet);
696 for (
i = 0;
i < lpRowSet->
cRows;
i++)
721 ULONG i, ulCount = iCount, ulBytes = 0;
723 TRACE(
"(%d,%p,%p)\n", iCount, lpProps, pcBytes);
725 if (iCount <= 0 || !lpProps ||
729 for (
i = 0;
i < ulCount;
i++)
731 ULONG ulPropSize = 0;
774 ulBytes += ulPropSize;
803 char *lpDataDest = (
char *)(lpDest + cValues);
807 TRACE(
"(%d,%p,%p,%p)\n", cValues, lpProps, lpDst, lpCount);
809 if (!lpProps || cValues < 0 || !lpDest)
814 for (iter = 0; iter < cValues; iter++)
821 lpDataDest +=
sizeof(
GUID);
859 lpDataDest += ulStrLen;
873 lpDataDest += ulStrLen;
904 *lpCount = lpDataDest - (
char *)lpDst;
943 TRACE(
"(%d,%p,%p,%p,%p)\n", cValues, lpProps, lpOld, lpNew, lpCount);
945 if (!lpProps || cValues < 0 || !lpOld || !lpNew)
962 #define RELOC_PTR(p) (((char*)(p)) - (char*)lpOld + (char*)lpNew) 964 for (iter = 0; iter < cValues; iter++)
970 ulCount +=
sizeof(
GUID);
1012 ulCount += ulStrLen;
1027 ulCount += ulStrLen;
1078 TRACE(
"(%d,%d,%p)\n", ulPropTag, cValues, lpProps);
1080 if (lpProps && cValues)
1083 for (
i = 0;
i < cValues;
i++)
1114 TRACE(
"(%d,%p,%p,%p)\n", cValues, lpProps, lpAlloc, lpNewProp);
1119 sc = lpAlloc(ulCount, (
LPVOID*)lpNewProp);
1121 sc =
ScCopyProps(cValues, lpProps, *lpNewProp, &ulCount);
1142 TRACE(
"(%p,%d)\n", lppszStrs, ulCount);
1150 for (
i = 0;
i < ulCount;
i++)
1167 TRACE(
"(%p,%d)\n", lppszStrs, ulCount);
1175 for (
i = 0;
i < ulCount;
i++)
1197 TRACE(
"(%p)\n", lpRowSet);
1202 for (
i = 0;
i < lpRowSet->
cRows;
i++)
1223 TRACE(
"(0x%08x)\n", ulPropTag);
1263 TRACE(
"(%p)\n", lpRow);
1361 TRACE(
"(%p)\n", lpCols);
1377 TRACE(
"Returning %s\n", ulRet ?
"TRUE" :
"FALSE");
1462 lpNew->
value = lpMem;
1468 This->ulNumValues++;
1473 This->lpFree(lpNew);
1491 #define CbNewSPropProblemArray(c) \ 1492 (offsetof(SPropProblemArray,aProblem)+(c)*sizeof(SPropProblem)) 1506 if (!ppvObj || !
riid)
1515 *ppvObj = &
This->IPropData_iface;
1517 TRACE(
"returning %p\n", *ppvObj);
1521 TRACE(
"returning E_NOINTERFACE\n");
1556 TRACE(
"Destroying IPropData (%p)\n",
This);
1567 This->cs.DebugInfo->Spare[0] = 0;
1599 TRACE(
"(%p,0x%08X,0x%08X,%p)\n", iface, hRes, ulFlags, lppError);
1623 TRACE(
"(%p,0x%08X)\n", iface, ulFlags);
1661 TRACE(
"(%p,%p,0x%08x,%p,%p) stub\n", iface, lpTags, ulFlags,
1664 if (!iface || ulFlags & ~
MAPI_UNICODE || !lpTags || *lpCount || !lppProps)
1667 FIXME(
"semi-stub, flags not supported\n");
1689 This->lpMore, *lppProps);
1693 (*lppProps)[
i].ulPropTag =
1727 TRACE(
"(%p,0x%08x,%p) stub\n", iface, ulFlags, lppTags);
1732 FIXME(
"semi-stub, flags not supported\n");
1748 (*lppTags)->aulPropTag[
i] =
current->value->ulPropTag;
1751 (*lppTags)->cValues =
This->ulNumValues;
1769 FIXME(
"(%p,%u,%s,%u,0x%08x,%p) stub\n", iface, ulPropTag,
1798 TRACE(
"(%p,%u,%p,%p)\n", iface, ulValues, lpProps, lppProbs);
1800 if (!iface || !lpProps)
1803 for (
i = 0;
i < ulValues;
i++)
1814 for (
i = 0;
i < ulValues;
i++)
1825 FIXME(
"semi-stub, overwriting type (not coercing)\n");
1834 item->value = lpMem;
1837 This->lpFree(lpMem);
1884 TRACE(
"(%p,%p,%p)\n", iface, lpTags, lppProbs);
1886 if (!iface || !lpTags)
1920 This->ulNumValues--;
1944 if (lppProbs && *lppProbs)
1945 (*lppProbs)->cProblem = numProbs;
1966 FIXME(
"(%p,%u,%p,%p,%x,%p,%s,%p,0x%08X,%p) stub\n", iface, niids,
1967 lpiidExcl, lpPropsExcl, ulParam, lpIProgress,
1985 FIXME(
"(%p,%p,%x,%p,%s,%p,0x%08X,%p) stub\n", iface, lpInclProps,
1986 ulParam, lpIProgress,
debugstr_guid(lpIface), lpDstObj, ulFlags,
2018 FIXME(
"(%p,%p,%s,0x%08X,%p,%p) stub\n", iface, lppPropTags,
2048 FIXME(
"(%p,%d,%p,0x%08X,%p) stub\n",
2049 iface, ulNames, lppNames, ulFlags, lppPropTags);
2072 TRACE(
"(%p,%x)\n", iface, ulAccess);
2074 if (!iface || ulAccess < IPROP_READONLY || ulAccess >
IPROP_READWRITE)
2079 This->ulObjAccess = ulAccess;
2127 TRACE(
"(%p,%p,%p)\n", iface, lpTags, lpAccess);
2129 if (!iface || !lpTags || !lpAccess)
2145 item->ulAccess = lpAccess[
i];
2180 TRACE(
"(%p,%p,%p) stub\n", iface, lppTags, lppAccess);
2182 if (!iface || !lppTags || !lppAccess)
2195 hRet =
This->lpAlloc(
This->ulNumValues *
sizeof(
ULONG), &lpMem);
2201 (*lppTags)->cValues =
This->ulNumValues;
2207 (*lppTags)->aulPropTag[
i] =
item->value->ulPropTag;
2208 (*lppAccess)[
i] =
item->ulAccess;
2214 This->lpFree(*lppTags);
2239 FIXME(
"(%p,%p,%p) stub\n", iface, lpTags, lppProbs);
2241 if (!iface || !lpTags)
2308 ALLOCATEMORE *lpMore, FREEBUFFER *lpFree,
2314 TRACE(
"(%s,%p,%p,%p,%p,%p)\n",
debugstr_guid(iid), lpAlloc, lpMore, lpFree,
2315 lpReserved, lppPropData);
2318 *lppPropData =
NULL;
2323 if (!lpAlloc || !lpMore || !lpFree || lpReserved || !lppPropData)
2331 lpPropData->lRef = 1;
2332 lpPropData->lpAlloc = lpAlloc;
2333 lpPropData->lpMore = lpMore;
2334 lpPropData->lpFree = lpFree;
2336 lpPropData->ulNumValues = 0;
2339 lpPropData->cs.DebugInfo->Spare[0] = (
DWORD_PTR)(__FILE__
": IPropDataImpl.cs");
2340 *lppPropData = &lpPropData->IPropData_iface;
#define IPropData_AddRef(p)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
LPSPropValue WINAPI LpValFindProp(ULONG ulPropTag, ULONG cValues, LPSPropValue lpProps)
ULONG WINAPI FBadColumnSet(LPSPropTagArray lpCols)
static IPropDataImpl * impl_from_IPropData(IPropData *iface)
static ULONG WINAPI IPropData_fnRelease(LPPROPDATA iface)
SCODE WINAPI ScDupPropset(int cValues, LPSPropValue lpProps, LPALLOCATEBUFFER lpAlloc, LPSPropValue *lpNewProp)
static HRESULT WINAPI IPropData_fnHrGetPropAccess(LPPROPDATA iface, LPSPropTagArray *lppTags, ULONG **lppAccess)
BOOL NTAPI IsBadWritePtr(IN LPVOID lp, IN UINT_PTR ucb)
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
ULONG WINAPI FBadPropTag(ULONG ulPropTag)
static void IMAPIPROP_Lock(IPropDataImpl *This)
struct outqueuenode * head
#define LOCALE_USER_DEFAULT
int WINAPI lstrcmpW(LPCWSTR lpString1, LPCWSTR lpString2)
LPSTR WINAPI StrChrIA(LPCSTR lpszStr, WORD ch)
GLboolean GLenum GLenum GLvoid * values
struct _SPropValue SPropValue
#define CbSPropTagArray(p)
static ULONG WINAPI IPropData_fnAddRef(LPPROPDATA iface)
HRESULT WINAPI HrSetOneProp(LPMAPIPROP lpIProp, LPSPropValue lpProp)
#define NORM_IGNORESYMBOLS
int WINAPI lstrcmpA(LPCSTR lpString1, LPCSTR lpString2)
#define MAPI_E_NOT_ENOUGH_MEMORY
VOID WINAPI FreeProws(LPSRowSet lpRowSet)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
static IPropDataItem * IMAPIPROP_GetValue(IPropDataImpl *This, ULONG ulPropTag)
#define MAPI_E_INTERFACE_NOT_SUPPORTED
static HRESULT WINAPI IPropData_fnOpenProperty(LPPROPDATA iface, ULONG ulPropTag, LPCIID iid, ULONG ulOpts, ULONG ulFlags, LPUNKNOWN *lpUnk)
struct IPropData * LPPROPDATA
BOOL WINAPI FPropContainsProp(LPSPropValue lpHaystack, LPSPropValue lpNeedle, ULONG ulFuzzy)
#define FL_IGNORENONSPACE
__WINE_SERVER_LIST_INLINE struct list * list_head(const struct list *list)
#define MAPI_E_NO_SUPPORT
__WINE_SERVER_LIST_INLINE void list_add_tail(struct list *list, struct list *elem)
MAPIFREEBUFFER MAPIFreeBuffer
#define IMAPIProp_GetProps(p, a, b, c, d)
LPSTR WINAPI StrChrA(LPCSTR lpszStr, WORD ch)
IMAPIProgress * LPMAPIPROGRESS
HRESULT WINAPI HrGetOneProp(LPMAPIPROP lpIProp, ULONG ulPropTag, LPSPropValue *lppProp)
static const char mbstate_t *static wchar_t const char mbstate_t *static const wchar_t int *static double
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
#define LIST_FOR_EACH(cursor, list)
SCODE WINAPI PropCopyMore(LPSPropValue lpDest, LPSPropValue lpSrc, ALLOCATEMORE *lpMore, LPVOID lpOrig)
#define CbNewSPropTagArray(c)
BOOL WINAPI FBadRowSet(LPSRowSet lpRowSet)
static const IPropDataVtbl IPropDataImpl_vtbl
BOOL WINAPI FBadEntryList(LPENTRYLIST lpEntryList)
#define MAPI_E_INVALID_PARAMETER
#define CbNewSPropProblemArray(c)
static LONG(WINAPI *pLPropCompareProp)(LPSPropValue
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
WINE_DEFAULT_DEBUG_CHANNEL(mapi)
struct _FILETIME FILETIME
INT WINAPI CompareStringA(LCID lcid, DWORD flags, LPCSTR str1, INT len1, LPCSTR str2, INT len2)
VOID WINAPI FreePadrlist(LPADRLIST lpAddrs)
__WINE_SERVER_LIST_INLINE void list_remove(struct list *elem)
ULONG WINAPI FBadProp(LPSPropValue lpProp)
LONG WINAPI CompareFileTime(IN CONST FILETIME *lpFileTime1, IN CONST FILETIME *lpFileTime2)
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
ALLOCATEBUFFER * LPALLOCATEBUFFER
static void IMAPIPROP_Unlock(IPropDataImpl *This)
SCODE WINAPI ScCopyProps(int cValues, LPSPropValue lpProps, LPVOID lpDst, ULONG *lpCount)
static HRESULT WINAPI IPropData_fnGetPropList(LPPROPDATA iface, ULONG ulFlags, LPSPropTagArray *lppTags)
struct IPropDataItem * LPIPropDataItem
struct task_struct * current
#define IMAPIProp_GetPropList(p, a, b)
static HRESULT WINAPI IPropData_fnHrAddObjProps(LPPROPDATA iface, LPSPropTagArray lpTags, LPSPropProblemArray *lppProbs)
static HRESULT WINAPI IPropData_fnHrSetObjAccess(LPPROPDATA iface, ULONG ulAccess)
ULONG aulPropTag[MAPI_DIM]
ULONG WINAPI FBadRow(LPSRow lpRow)
#define InterlockedDecrement
static HRESULT WINAPI IPropData_fnGetLastError(LPPROPDATA iface, HRESULT hRes, ULONG ulFlags, LPMAPIERROR *lppError)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
static BOOL PROP_IsBadAccess(ULONG ulAccess)
#define memcpy(s1, s2, n)
#define IMAPIProp_SetProps(p, a, b, c)
static ULONG PROP_BadArray(LPSPropValue lpProp, size_t elemSize)
static HRESULT WINAPI IPropData_fnDeleteProps(LPPROPDATA iface, LPSPropTagArray lpTags, LPSPropProblemArray *lppProbs)
static HRESULT WINAPI IPropData_fnCopyTo(LPPROPDATA iface, ULONG niids, LPCIID lpiidExcl, LPSPropTagArray lpPropsExcl, ULONG ulParam, LPMAPIPROGRESS lpIProgress, LPCIID lpIfaceIid, LPVOID lpDstObj, ULONG ulFlags, LPSPropProblemArray *lppProbs)
BOOL WINAPI FBadRglpszW(LPWSTR *lppszStrs, ULONG ulCount)
__WINE_SERVER_LIST_INLINE int list_empty(const struct list *list)
static HRESULT WINAPI IPropData_fnGetIDsFromNames(LPPROPDATA iface, ULONG ulNames, LPMAPINAMEID *lppNames, ULONG ulFlags, LPSPropTagArray *lppPropTags)
IPropData IPropData_iface
static HRESULT WINAPI IPropData_fnSetProps(LPPROPDATA iface, ULONG ulValues, LPSPropValue lpProps, LPSPropProblemArray *lppProbs)
BOOL NTAPI IsBadStringPtrA(IN LPCSTR lpsz, IN UINT_PTR ucchMax)
int WINAPI lstrlenA(LPCSTR lpString)
#define InterlockedIncrement
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
static float(__cdecl *square_half_float)(float x
static HRESULT WINAPI IPropData_fnSaveChanges(LPPROPDATA iface, ULONG ulFlags)
MAPIALLOCATEBUFFER MAPIAllocateBuffer
BOOL WINAPI IsBadReadPtr(IN LPCVOID lp, IN UINT_PTR ucb)
static HRESULT WINAPI IPropData_fnGetProps(LPPROPDATA iface, LPSPropTagArray lpTags, ULONG ulFlags, ULONG *lpCount, LPSPropValue *lppProps)
static HRESULT WINAPI IPropData_fnGetNamesFromIDs(LPPROPDATA iface, LPSPropTagArray *lppPropTags, LPGUID iid, ULONG ulFlags, ULONG *lpCount, LPMAPINAMEID **lpppNames)
BOOL NTAPI IsBadStringPtrW(IN LPCWSTR lpsz, IN UINT_PTR ucchMax)
BOOL WINAPI FBadRglpszA(LPSTR *, ULONG)
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
ULONG WINAPI UlPropSize(LPSPropValue lpProp)
#define NORM_IGNORENONSPACE
static IPropDataItem * IMAPIPROP_AddValue(IPropDataImpl *This, LPSPropValue lpProp)
#define IPropData_SetProps(p, a, b, c)
__WINE_SERVER_LIST_INLINE void list_init(struct list *list)
BOOL WINAPI FPropCompareProp(LPSPropValue lpPropLeft, ULONG ulOp, LPSPropValue lpPropRight)
static HRESULT WINAPI IPropData_fnCopyProps(LPPROPDATA iface, LPSPropTagArray lpInclProps, ULONG ulParam, LPMAPIPROGRESS lpIProgress, LPCIID lpIface, LPVOID lpDstObj, ULONG ulFlags, LPSPropProblemArray *lppProbs)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
static HRESULT WINAPI IPropData_fnQueryInterface(LPPROPDATA iface, REFIID riid, LPVOID *ppvObj)
#define MAPI_W_ERRORS_RETURNED
LONG WINAPI LPropCompareProp(LPSPropValue lpPropLeft, LPSPropValue lpPropRight)
LPSPropValue WINAPI PpropFindProp(LPSPropValue lpProps, ULONG cValues, ULONG ulPropTag)
SCODE WINAPI ScCountProps(INT iCount, LPSPropValue lpProps, ULONG *pcBytes)
SCODE WINAPI CreateIProp(LPCIID iid, ALLOCATEBUFFER *lpAlloc, ALLOCATEMORE *lpMore, FREEBUFFER *lpFree, LPVOID lpReserved, LPPROPDATA *lppPropData)
#define HeapFree(x, y, z)
static HRESULT WINAPI IPropData_fnHrSetPropAccess(LPPROPDATA iface, LPSPropTagArray lpTags, ULONG *lpAccess)
#define IsEqualIID(riid1, riid2)
SCODE WINAPI ScRelocProps(int cValues, LPSPropValue lpProps, LPVOID lpOld, LPVOID lpNew, ULONG *lpCount)
BOOL WINAPI FPropExists(LPMAPIPROP lpIProp, ULONG ulPropTag)
#define CHANGE_PROP_TYPE(t, typ)