Home | History | Annotate | Download | only in include
      1 /**
      2  * This file has no copyright assigned and is placed in the Public Domain.
      3  * This file is part of the mingw-w64 runtime package.
      4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
      5  */
      6 #ifndef _INC_VALIDATE
      7 #define _INC_VALIDATE
      8 
      9 #ifdef __cplusplus
     10 extern "C" {
     11 #endif
     12 
     13 #include <mapiutil.h>
     14 #include <stddef.h>
     15 #include <stdarg.h>
     16 
     17 #define MAKE_ENUM(Method,Interface) Interface##_##Method
     18 
     19   typedef enum _tagMethods {
     20     MAKE_ENUM(QueryInterface,IUnknown) = 0,MAKE_ENUM(AddRef,IUnknown),MAKE_ENUM(Release,IUnknown),MAKE_ENUM(GetLastError,IMAPIProp),
     21     MAKE_ENUM(SaveChanges,IMAPIProp),MAKE_ENUM(GetProps,IMAPIProp),MAKE_ENUM(GetPropList,IMAPIProp),MAKE_ENUM(OpenProperty,IMAPIProp),
     22     MAKE_ENUM(SetProps,IMAPIProp),MAKE_ENUM(DeleteProps,IMAPIProp),MAKE_ENUM(CopyTo,IMAPIProp),MAKE_ENUM(CopyProps,IMAPIProp),
     23     MAKE_ENUM(GetNamesFromIDs,IMAPIProp),MAKE_ENUM(GetIDsFromNames,IMAPIProp),MAKE_ENUM(GetLastError,IMAPITable),MAKE_ENUM(Advise,IMAPITable),
     24     MAKE_ENUM(Unadvise,IMAPITable),MAKE_ENUM(GetStatus,IMAPITable),MAKE_ENUM(SetColumns,IMAPITable),MAKE_ENUM(QueryColumns,IMAPITable),
     25     MAKE_ENUM(GetRowCount,IMAPITable),MAKE_ENUM(SeekRow,IMAPITable),MAKE_ENUM(SeekRowApprox,IMAPITable),MAKE_ENUM(QueryPosition,IMAPITable),
     26     MAKE_ENUM(FindRow,IMAPITable),MAKE_ENUM(Restrict,IMAPITable),MAKE_ENUM(CreateBookmark,IMAPITable),MAKE_ENUM(FreeBookmark,IMAPITable),
     27     MAKE_ENUM(SortTable,IMAPITable),MAKE_ENUM(QuerySortOrder,IMAPITable),MAKE_ENUM(QueryRows,IMAPITable),MAKE_ENUM(Abort,IMAPITable),
     28     MAKE_ENUM(ExpandRow,IMAPITable),MAKE_ENUM(CollapseRow,IMAPITable),MAKE_ENUM(WaitForCompletion,IMAPITable),MAKE_ENUM(GetCollapseState,IMAPITable),
     29     MAKE_ENUM(SetCollapseState,IMAPITable),MAKE_ENUM(GetContentsTable,IMAPIContainer),MAKE_ENUM(GetHierarchyTable,IMAPIContainer),
     30     MAKE_ENUM(OpenEntry,IMAPIContainer),MAKE_ENUM(SetSearchCriteria,IMAPIContainer),MAKE_ENUM(GetSearchCriteria,IMAPIContainer),
     31     MAKE_ENUM(CreateEntry,IABContainer),MAKE_ENUM(CopyEntries,IABContainer),MAKE_ENUM(DeleteEntries,IABContainer),MAKE_ENUM(ResolveNames,IABContainer),
     32     MAKE_ENUM(CreateEntry,IDistList),MAKE_ENUM(CopyEntries,IDistList),MAKE_ENUM(DeleteEntries,IDistList),MAKE_ENUM(ResolveNames,IDistList),
     33     MAKE_ENUM(CreateMessage,IMAPIFolder),MAKE_ENUM(CopyMessages,IMAPIFolder),MAKE_ENUM(DeleteMessages,IMAPIFolder),MAKE_ENUM(CreateFolder,IMAPIFolder),
     34     MAKE_ENUM(CopyFolder,IMAPIFolder),MAKE_ENUM(DeleteFolder,IMAPIFolder),MAKE_ENUM(SetReadFlags,IMAPIFolder),MAKE_ENUM(GetMessageStatus,IMAPIFolder),
     35     MAKE_ENUM(SetMessageStatus,IMAPIFolder),MAKE_ENUM(SaveContentsSort,IMAPIFolder),MAKE_ENUM(EmptyFolder,IMAPIFolder),MAKE_ENUM(Advise,IMsgStore),
     36     MAKE_ENUM(Unadvise,IMsgStore),MAKE_ENUM(CompareEntryIDs,IMsgStore),MAKE_ENUM(OpenEntry,IMsgStore),MAKE_ENUM(SetReceiveFolder,IMsgStore),
     37     MAKE_ENUM(GetReceiveFolder,IMsgStore),MAKE_ENUM(GetReceiveFolderTable,IMsgStore),MAKE_ENUM(StoreLogoff,IMsgStore),MAKE_ENUM(AbortSubmit,IMsgStore),
     38     MAKE_ENUM(GetOutgoingQueue,IMsgStore),MAKE_ENUM(SetLockState,IMsgStore),MAKE_ENUM(FinishedMsg,IMsgStore),MAKE_ENUM(NotifyNewMail,IMsgStore),
     39     MAKE_ENUM(GetAttachmentTable,IMessage),MAKE_ENUM(OpenAttach,IMessage),MAKE_ENUM(CreateAttach,IMessage),MAKE_ENUM(DeleteAttach,IMessage),
     40     MAKE_ENUM(GetRecipientTable,IMessage),MAKE_ENUM(ModifyRecipients,IMessage),MAKE_ENUM(SubmitMessage,IMessage),MAKE_ENUM(SetReadFlag,IMessage),
     41     MAKE_ENUM(Shutdown,IABProvider),MAKE_ENUM(Logon,IABProvider),MAKE_ENUM(GetLastError,IABLogon),MAKE_ENUM(Logoff,IABLogon),
     42     MAKE_ENUM(OpenEntry,IABLogon),MAKE_ENUM(CompareEntryIDs,IABLogon),MAKE_ENUM(Advise,IABLogon),MAKE_ENUM(Unadvise,IABLogon),
     43     MAKE_ENUM(OpenStatusEntry,IABLogon),MAKE_ENUM(OpenTemplateID,IABLogon),MAKE_ENUM(GetOneOffTable,IABLogon),MAKE_ENUM(PrepareRecips,IABLogon),
     44     MAKE_ENUM(Shutdown,IXPProvider),MAKE_ENUM(TransportLogon,IXPProvider),MAKE_ENUM(AddressTypes,IXPLogon),MAKE_ENUM(RegisterOptions,IXPLogon),
     45     MAKE_ENUM(TransportNotify,IXPLogon),MAKE_ENUM(Idle,IXPLogon),MAKE_ENUM(TransportLogoff,IXPLogon),MAKE_ENUM(SubmitMessage,IXPLogon),
     46     MAKE_ENUM(EndMessage,IXPLogon),MAKE_ENUM(Poll,IXPLogon),MAKE_ENUM(StartMessage,IXPLogon),MAKE_ENUM(OpenStatusEntry,IXPLogon),
     47     MAKE_ENUM(ValidateState,IXPLogon),MAKE_ENUM(FlushQueues,IXPLogon),MAKE_ENUM(Shutdown,IMSProvider),MAKE_ENUM(Logon,IMSProvider),
     48     MAKE_ENUM(SpoolerLogon,IMSProvider),MAKE_ENUM(CompareStoreIDs,IMSProvider),MAKE_ENUM(GetLastError,IMSLogon),MAKE_ENUM(Logoff,IMSLogon),
     49     MAKE_ENUM(OpenEntry,IMSLogon),MAKE_ENUM(CompareEntryIDs,IMSLogon),MAKE_ENUM(Advise,IMSLogon),MAKE_ENUM(Unadvise,IMSLogon),
     50     MAKE_ENUM(OpenStatusEntry,IMSLogon),MAKE_ENUM(GetLastError,IMAPIControl),MAKE_ENUM(Activate,IMAPIControl),MAKE_ENUM(GetState,IMAPIControl),
     51     MAKE_ENUM(ValidateState,IMAPIStatus),MAKE_ENUM(SettingsDialog,IMAPIStatus),MAKE_ENUM(ChangePassword,IMAPIStatus),MAKE_ENUM(FlushQueues,IMAPIStatus),
     52     MAKE_ENUM(Read,IStream),MAKE_ENUM(Write,IStream),MAKE_ENUM(Seek,IStream),MAKE_ENUM(SetSize,IStream),MAKE_ENUM(CopyTo,IStream),
     53     MAKE_ENUM(Commit,IStream),MAKE_ENUM(Revert,IStream),MAKE_ENUM(LockRegion,IStream),MAKE_ENUM(UnlockRegion,IStream),MAKE_ENUM(Stat,IStream),
     54     MAKE_ENUM(Clone,IStream),MAKE_ENUM(OnNotify,IMAPIAdviseSink)
     55   } METHODS;
     56 #if defined(_X86_)
     57 #ifdef __cplusplus
     58 #define ValidateParameters(eMethod,First) { HRESULT _hr_; _hr_ = __CPPValidateParameters(eMethod,(LPVOID) &First); if (HR_FAILED(_hr_)) return (_hr_); }
     59 #define UlValidateParameters(eMethod,First) { HRESULT _hr_; _hr_ = __CPPValidateParameters(eMethod,&First); if (HR_FAILED(_hr_)) return (ULONG) (_hr_); }
     60 #define CheckParameters(eMethod,First) AssertSz(HR_SUCCEEDED(__CPPValidateParameters(eMethod,&First)),"Parameter validation failed for method called by MAPI!")
     61 #else
     62 #define ValidateParameters(eMethod,ppThis) { HRESULT _hr_; _hr_ = __ValidateParameters(eMethod,ppThis); if (HR_FAILED(_hr_)) return (_hr_); }
     63 #define UlValidateParameters(eMethod,ppThis) { HRESULT _hr_; _hr_ = __ValidateParameters(eMethod,ppThis); if (HR_FAILED(_hr_)) return (ULONG) (_hr_); }
     64 #define CheckParameters(eMethod,ppThis) AssertSz(HR_SUCCEEDED(__ValidateParameters(eMethod,ppThis)),"Parameter validation failed for method called by MAPI!")
     65 #endif
     66 #endif
     67 
     68 #define FBadPropVal(lpPropVal) (FAILED(ScCountProps(1,lpPropVal,NULL)))
     69 #define FBadRgPropVal(lpPropVal,cValues) (FAILED(ScCountProps(cValues,lpPropVal,NULL)))
     70 #define FBadAdrList(lpAdrList) (AssertSz((offsetof(ADRLIST,cEntries)==offsetof(SRowSet,cRows)) && (offsetof(ADRLIST,aEntries)==offsetof(SRowSet,aRow)) && (offsetof(ADRENTRY,cValues)==offsetof(SRow,cValues)) && (offsetof(ADRENTRY,rgPropVals)==offsetof(SRow,lpProps)) ,"ADRLIST doesn't match SRowSet") || FBadRowSet((LPSRowSet) lpAdrList))
     71 
     72   STDAPI_(WINBOOL) FBadRglpszW(LPWSTR *lppszW,ULONG cStrings);
     73   STDAPI_(WINBOOL) FBadRowSet(LPSRowSet lpRowSet);
     74   STDAPI_(WINBOOL) FBadRglpNameID(LPMAPINAMEID *lppNameId,ULONG cNames);
     75   STDAPI_(WINBOOL) FBadEntryList(LPENTRYLIST lpEntryList);
     76 
     77 #define BAD_STANDARD_OBJ(lpObj,prefix,method,lpVtbl) (IsBadWritePtr((lpObj),sizeof(*lpObj)) || IsBadReadPtr((void *) &(lpObj->lpVtbl->method),sizeof(LPVOID)) ||((LPVOID) (lpObj->lpVtbl->method)!=(LPVOID) (prefix##method)))
     78 #define FBadUnknown(lpObj) (IsBadReadPtr((lpObj),sizeof(LPVOID)) || IsBadReadPtr((lpObj)->lpVtbl,3 *sizeof(LPUNKNOWN)) || IsBadCodePtr((FARPROC)(lpObj)->lpVtbl->QueryInterface))
     79 #define FBadQueryInterface(lpObj,riid,ppvObj) (IsBadReadPtr(riid,sizeof(IID)) || IsBadWritePtr(ppvObj,sizeof(LPVOID)))
     80 #define FBadAddRef(lpObj) FALSE
     81 #define FBadRelease(lpObj) FALSE
     82 #define FBadGetLastError(lpObj,hResult,ulFlags,lppMAPIError) (IsBadWritePtr(lppMAPIError,sizeof(LPMAPIERROR)))
     83 #define FBadSaveChanges(lpObj,ulFlags) FALSE
     84 #define FBadGetProps(lpObj,lpPTagA,lpcValues,lppPropArray) ((lpPTagA && (IsBadReadPtr(lpPTagA,sizeof(ULONG)) || IsBadReadPtr(lpPTagA,(UINT)((lpPTagA->cValues + 1) *sizeof(ULONG))))) || IsBadWritePtr(lpcValues,sizeof(ULONG)) || IsBadWritePtr(lppPropArray,sizeof(LPSPropValue)))
     85 #define FBadGetPropList(lpObj,lppPTagA) (IsBadWritePtr(lppPTagA,sizeof(LPSPropTagArray *)))
     86 #define FBadOpenProperty(lpObj,ulPropTag,lpiid,ulInterfaceOptions,ulFlags ,lppUnk) (IsBadReadPtr(lpiid,sizeof(IID)) || IsBadWritePtr(lppUnk,sizeof (LPUNKNOWN *)))
     87 #define FBadSetProps(lpObj,cValues,lpPropArray,lppProblems) (FBadRgPropVal(lpPropArray,(UINT) cValues) || (lppProblems && IsBadWritePtr(lppProblems,sizeof(LPSPropProblemArray))))
     88 #define FBadDeleteProps(lpObj,lpPTagA,lppProblems) ((!lpPTagA || (IsBadReadPtr(lpPTagA,sizeof(ULONG)) || IsBadReadPtr(lpPTagA,(UINT)((lpPTagA->cValues + 1) *sizeof(ULONG))))) || (lppProblems && IsBadWritePtr(lppProblems,sizeof(LPSPropProblemArray))))
     89 #define FBadCopyTo(lpIPDAT,ciidExclude,rgiidExclude,lpExcludeProps ,ulUIParam,lpProgress,lpInterface,lpDestObj ,ulFlags,lppProblems) ((ciidExclude && (IsBadReadPtr(rgiidExclude,(UINT)(ciidExclude *sizeof(IID))))) || (lpExcludeProps && (IsBadReadPtr(lpExcludeProps,sizeof(ULONG)) || IsBadReadPtr(lpExcludeProps ,(UINT)((lpExcludeProps->cValues + 1) *sizeof(ULONG))))) || (lpProgress && FBadUnknown(lpProgress)) || (lpInterface && IsBadReadPtr(lpInterface,sizeof(IID))) || IsBadReadPtr(lpDestObj,sizeof(LPVOID)) || (lppProblems && IsBadWritePtr(lppProblems,sizeof(LPSPropProblemArray))))
     90 #define FBadCopyProps(lpIPDAT,lpPropTagArray ,ulUIParam,lpProgress,lpInterface,lpDestObj ,ulFlags,lppProblems) ((lpPropTagArray && (IsBadReadPtr(lpPropTagArray,sizeof(ULONG)) || IsBadReadPtr(lpPropTagArray ,(UINT)((lpPropTagArray->cValues + 1) *sizeof(ULONG))))) || (lpProgress && FBadUnknown(lpProgress)) || (lpInterface && IsBadReadPtr(lpInterface,sizeof(IID))) || IsBadReadPtr(lpDestObj,sizeof(LPVOID)) || (lppProblems && IsBadWritePtr(lppProblems,sizeof(LPSPropProblemArray))))
     91 #define FBadGetNamesFromIDs(lpIPDAT,lppPropTags,lpPropSetGuid,ulFlags,lpcPropNames,lpppPropNames) (IsBadReadPtr(lppPropTags,sizeof(LPSPropTagArray)) || (lpPropSetGuid && IsBadReadPtr(lpPropSetGuid,sizeof(GUID))) || (*lppPropTags && (IsBadReadPtr(*lppPropTags,sizeof(ULONG)) || IsBadReadPtr(*lppPropTags ,(UINT)(((*lppPropTags)->cValues + 1) *sizeof(ULONG))))) || IsBadWritePtr(lpcPropNames,sizeof (ULONG)) || IsBadWritePtr(lpppPropNames,sizeof (LPVOID *)))
     92 #define FBadGetIDsFromNames(lpIPDAT,cPropNames,lppPropNames,ulFlags ,lppPropTags) ((cPropNames && FBadRglpNameID(lppPropNames,cPropNames)) || IsBadWritePtr(lppPropTags,sizeof(LPULONG *)))
     93 
     94   STDAPI_(ULONG) FBadRestriction(LPSRestriction lpres);
     95   STDAPI_(ULONG) FBadPropTag(ULONG ulPropTag);
     96   STDAPI_(ULONG) FBadRow(LPSRow lprow);
     97   STDAPI_(ULONG) FBadProp(LPSPropValue lpprop);
     98   STDAPI_(ULONG) FBadSortOrderSet(LPSSortOrderSet lpsos);
     99   STDAPI_(ULONG) FBadColumnSet(LPSPropTagArray lpptaCols);
    100 
    101 #define BASED_STACK
    102 
    103   HRESULT WINAPI __CPPValidateParameters(METHODS eMethod,const LPVOID ppFirst);
    104   HRESULT WINAPI __ValidateParameters(METHODS eMethod,LPVOID ppThis);
    105 
    106 #if defined(_X86_)
    107 #define ArgSize(T) ((sizeof(T)+3)/4)
    108 #define MakeArg1(idx,a1) memcpy(__rgArgs+idx,&a1,ArgSize(a1)*4)
    109 #define MakeArg2(idx,a1,a2) MakeArg1(idx,a1); MakeArg1(idx+ArgSize(a1),a2)
    110 #define MakeArg3(idx,a1,a2,a3) MakeArg1(idx,a1); MakeArg2(idx+ArgSize(a1),a2,a3)
    111 #define MakeArg4(idx,a1,a2,a3,a4) MakeArg1(idx,a1); MakeArg3(idx+ArgSize(a1),a2,a3,a4)
    112 #define MakeArg5(idx,a1,a2,a3,a4,a5) MakeArg1(idx,a1); MakeArg4(idx+ArgSize(a1),a2,a3,a4,a5)
    113 #define MakeArg6(idx,a1,a2,a3,a4,a5,a6) MakeArg1(idx,a1); MakeArg5(idx+ArgSize(a1),a2,a3,a4,a5,a6)
    114 #define MakeArg7(idx,a1,a2,a3,a4,a5,a6,a7) MakeArg1(idx,a1); MakeArg6(idx+ArgSize(a1),a2,a3,a4,a5,a6,a7)
    115 #define MakeArg8(idx,a1,a2,a3,a4,a5,a6,a7,a8) MakeArg1(idx,a1); MakeArg7(idx+ArgSize(a1),a2,a3,a4,a5,a6,a7,a8)
    116 #define MakeArg9(idx,a1,a2,a3,a4,a5,a6,a7,a8,a9) MakeArg1(idx,a1); MakeArg8(idx+ArgSize(a1),a2,a3,a4,a5,a6,a7,a8,a9)
    117 #define MakeArg10(idx,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) MakeArg1(idx,a1); MakeArg9(idx+ArgSize(a1),a2,a3,a4,a5,a6,a7,a8,a9,a10)
    118 #define MakeArg11(idx,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) MakeArg1(idx,a1); MakeArg10(idx+ArgSize(a1),a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)
    119 #define MakeArg12(idx,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12) MakeArg1(idx,a1); MakeArg11(idx+ArgSize(a1),a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)
    120 #define MakeArg13(idx,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13) MakeArg1(idx,a1); MakeArg12(idx+ArgSize(a1),a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)
    121 #define MakeArg14(idx,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14) MakeArg1(idx,a1); MakeArg13(idx+ArgSize(a1),a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14)
    122 #define MakeArg15(idx,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15) MakeArg1(idx,a1); MakeArg14(idx+ArgSize(a1),a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)
    123 #define MakeArg16(idx,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16) MakeArg1(idx,a1); MakeArg15(idx+ArgSize(a1),a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16)
    124 
    125 #define MakeArray1(a1) DWORD __rgArgs[ArgSize(a1)]; MakeArg1(0,a1)
    126 #define MakeArray2(a1,a2) DWORD __rgArgs[ArgSize(a1) + ArgSize(a2)]; MakeArg2(0,a1,a2)
    127 #define MakeArray3(a1,a2,a3) DWORD __rgArgs[ArgSize(a1) + ArgSize(a2) + ArgSize(a3)]; MakeArg3(0,a1,a2,a3)
    128 #define MakeArray4(a1,a2,a3,a4) DWORD __rgArgs[ArgSize(a1) + ArgSize(a2) + ArgSize(a3) + ArgSize(a4)]; MakeArg4(0,a1,a2,a3,a4)
    129 #define MakeArray5(a1,a2,a3,a4,a5) DWORD __rgArgs[ArgSize(a1) + ArgSize(a2) + ArgSize(a3) + ArgSize(a4) + ArgSize(a5)]; MakeArg5(0,a1,a2,a3,a4,a5)
    130 #define MakeArray6(a1,a2,a3,a4,a5,a6) DWORD __rgArgs[ArgSize(a1) + ArgSize(a2) + ArgSize(a3) + ArgSize(a4) + ArgSize(a5) + ArgSize(a6)]; MakeArg6(0,a1,a2,a3,a4,a5,a6)
    131 #define MakeArray7(a1,a2,a3,a4,a5,a6,a7) DWORD __rgArgs[ArgSize(a1) + ArgSize(a2) + ArgSize(a3) + ArgSize(a4) + ArgSize(a5) + ArgSize(a6) + ArgSize(a7)]; MakeArg7(0,a1,a2,a3,a4,a5,a6,a7)
    132 #define MakeArray8(a1,a2,a3,a4,a5,a6,a7,a8) DWORD __rgArgs[ArgSize(a1) + ArgSize(a2) + ArgSize(a3) + ArgSize(a4) + ArgSize(a5) + ArgSize(a6) + ArgSize(a7) + ArgSize(a8)]; MakeArg8(0,a1,a2,a3,a4,a5,a6,a7,a8)
    133 #define MakeArray9(a1,a2,a3,a4,a5,a6,a7,a8,a9) DWORD __rgArgs[ArgSize(a1) + ArgSize(a2) + ArgSize(a3) + ArgSize(a4) + ArgSize(a5) + ArgSize(a6) + ArgSize(a7) + ArgSize(a8) + ArgSize(a9)]; MakeArg9(0,a1,a2,a3,a4,a5,a6,a7,a8,a9)
    134 #define MakeArray10(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) DWORD __rgArgs[ArgSize(a1) + ArgSize(a2) + ArgSize(a3) + ArgSize(a4) + ArgSize(a5) + ArgSize(a6) + ArgSize(a7) + ArgSize(a8) + ArgSize(a9) + ArgSize(a10)]; MakeArg10(0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)
    135 #define MakeArray11(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) DWORD __rgArgs[ArgSize(a1) + ArgSize(a2) + ArgSize(a3) + ArgSize(a4) + ArgSize(a5) + ArgSize(a6) + ArgSize(a7) + ArgSize(a8) + ArgSize(a9) + ArgSize(a10) + ArgSize(a11)]; MakeArg11(0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)
    136 #define MakeArray12(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12) DWORD __rgArgs[ArgSize(a1) + ArgSize(a2) + ArgSize(a3) + ArgSize(a4) + ArgSize(a5) + ArgSize(a6) + ArgSize(a7) + ArgSize(a8) + ArgSize(a9) + ArgSize(a10) + ArgSize(a11) + ArgSize(a12)]; MakeArg12(0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)
    137 #define MakeArray13(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13) DWORD __rgArgs[ArgSize(a1) + ArgSize(a2) + ArgSize(a3) + ArgSize(a4) + ArgSize(a5) + ArgSize(a6) + ArgSize(a7) + ArgSize(a8) + ArgSize(a9) + ArgSize(a10) + ArgSize(a11) + ArgSize(a12) + ArgSize(a13)]; MakeArg13(0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)
    138 #define MakeArray14(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14) DWORD __rgArgs[ArgSize(a1) + ArgSize(a2) + ArgSize(a3) + ArgSize(a4) + ArgSize(a5) + ArgSize(a6) + ArgSize(a7) + ArgSize(a8) + ArgSize(a9) + ArgSize(a10) + ArgSize(a11) + ArgSize(a12) + ArgSize(a13) + ArgSize(a14)]; MakeArg14(0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14)
    139 #define MakeArray15(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15) DWORD __rgArgs[ArgSize(a1) + ArgSize(a2) + ArgSize(a3) + ArgSize(a4) + ArgSize(a5) + ArgSize(a6) + ArgSize(a7) + ArgSize(a8) + ArgSize(a9) + ArgSize(a10) + ArgSize(a11) + ArgSize(a12) + ArgSize(a13) + ArgSize(a14) + ArgSize(a15)]; MakeArg15(0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)
    140 #define MakeArray16(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16) DWORD __rgArgs[ArgSize(a1) + ArgSize(a2) + ArgSize(a3) + ArgSize(a4) + ArgSize(a5) + ArgSize(a6) + ArgSize(a7) + ArgSize(a8) + ArgSize(a9) + ArgSize(a10) + ArgSize(a11) + ArgSize(a12) + ArgSize(a13) + ArgSize(a14) + ArgSize(a15) + ArgSize(a16)]; MakeArg16(0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16)
    141 
    142 #define ValidateParameters1(m,a1)
    143 #define ValidateParameters2(m,a1,a2) { HRESULT _hr_; MakeArray1(a2); _hr_ = HrValidateParameters(m,(void **)__rgArgs); if (HR_FAILED(_hr_)) return (_hr_); }
    144 #define ValidateParameters3(m,a1,a2,a3) { HRESULT _hr_; MakeArray2(a2,a3); _hr_ = HrValidateParameters(m,(void **)__rgArgs); if (HR_FAILED(_hr_)) return (_hr_); }
    145 #define ValidateParameters4(m,a1,a2,a3,a4) { HRESULT _hr_; MakeArray3(a2,a3,a4); _hr_ = HrValidateParameters(m,(void **)__rgArgs); if (HR_FAILED(_hr_)) return (_hr_); }
    146 #define ValidateParameters5(m,a1,a2,a3,a4,a5) { HRESULT _hr_; MakeArray4(a2,a3,a4,a5); _hr_ = HrValidateParameters(m,(void **)__rgArgs); if (HR_FAILED(_hr_)) return (_hr_); }
    147 #define ValidateParameters6(m,a1,a2,a3,a4,a5,a6) { HRESULT _hr_; MakeArray5(a2,a3,a4,a5,a6); _hr_ = HrValidateParameters(m,(void **)__rgArgs); if (HR_FAILED(_hr_)) return (_hr_); }
    148 #define ValidateParameters7(m,a1,a2,a3,a4,a5,a6,a7) { HRESULT _hr_; MakeArray6(a2,a3,a4,a5,a6,a7); _hr_ = HrValidateParameters(m,(void **)__rgArgs); if (HR_FAILED(_hr_)) return (_hr_); }
    149 #define ValidateParameters8(m,a1,a2,a3,a4,a5,a6,a7,a8) { HRESULT _hr_; MakeArray7(a2,a3,a4,a5,a6,a7,a8); _hr_ = HrValidateParameters(m,(void **)__rgArgs); if (HR_FAILED(_hr_)) return (_hr_); }
    150 #define ValidateParameters9(m,a1,a2,a3,a4,a5,a6,a7,a8,a9) { HRESULT _hr_; MakeArray8(a2,a3,a4,a5,a6,a7,a8,a9); _hr_ = HrValidateParameters(m,(void **)__rgArgs); if (HR_FAILED(_hr_)) return (_hr_); }
    151 #define ValidateParameters10(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) { HRESULT _hr_; MakeArray9(a2,a3,a4,a5,a6,a7,a8,a9,a10); _hr_ = HrValidateParameters(m,(void **)__rgArgs); if (HR_FAILED(_hr_)) return (_hr_); }
    152 #define ValidateParameters11(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) { HRESULT _hr_; MakeArray10(a2,a3,a4,a5,a6,a7,a8,a9,a10,a11); _hr_ = HrValidateParameters(m,(void **)__rgArgs); if (HR_FAILED(_hr_)) return (_hr_); }
    153 #define ValidateParameters12(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12) { HRESULT _hr_; MakeArray11(a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12); _hr_ = HrValidateParameters(m,(void **)__rgArgs); if (HR_FAILED(_hr_)) return (_hr_); }
    154 #define ValidateParameters13(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13) { HRESULT _hr_; MakeArray12(a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13); _hr_ = HrValidateParameters(m,(void **)__rgArgs); if (HR_FAILED(_hr_)) return (_hr_); }
    155 #define ValidateParameters14(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14) { HRESULT _hr_; MakeArray13(a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14); _hr_ = HrValidateParameters(m,(void **)__rgArgs); if (HR_FAILED(_hr_)) return (_hr_); }
    156 #define ValidateParameters15(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15) { HRESULT _hr_; MakeArray14(a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15); _hr_ = HrValidateParameters(m,(void **)__rgArgs); if (HR_FAILED(_hr_)) return (_hr_); }
    157 #define ValidateParameters16(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16) { HRESULT _hr_; MakeArray15(a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16); _hr_ = HrValidateParameters(m,(void **)__rgArgs); if (HR_FAILED(_hr_)) return (_hr_); }
    158 
    159 #define UlValidateParameters1(m,a1)
    160 #define UlValidateParameters2(m,a1,a2) { HRESULT _hr_; MakeArray1(a2); _hr_ = HrValidateParameters(m,(void **)__rgArgs); if (HR_FAILED(_hr_)) return ((ULONG)_hr_); }
    161 #define UlValidateParameters3(m,a1,a2,a3) { HRESULT _hr_; MakeArray2(a2,a3); _hr_ = HrValidateParameters(m,(void **)__rgArgs); if (HR_FAILED(_hr_)) return ((ULONG)_hr_); }
    162 #define UlValidateParameters4(m,a1,a2,a3,a4) { HRESULT _hr_; MakeArray3(a2,a3,a4); _hr_ = HrValidateParameters(m,(void **)__rgArgs); if (HR_FAILED(_hr_)) return ((ULONG)_hr_); }
    163 #define UlValidateParameters5(m,a1,a2,a3,a4,a5) { HRESULT _hr_; MakeArray4(a2,a3,a4,a5); _hr_ = HrValidateParameters(m,(void **)__rgArgs); if (HR_FAILED(_hr_)) return ((ULONG)_hr_); }
    164 #define UlValidateParameters6(m,a1,a2,a3,a4,a5,a6) { HRESULT _hr_; MakeArray5(a2,a3,a4,a5,a6); _hr_ = HrValidateParameters(m,(void **)__rgArgs); if (HR_FAILED(_hr_)) return ((ULONG)_hr_); }
    165 #define UlValidateParameters7(m,a1,a2,a3,a4,a5,a6,a7) { HRESULT _hr_; MakeArray6(a2,a3,a4,a5,a6,a7); _hr_ = HrValidateParameters(m,(void **)__rgArgs); if (HR_FAILED(_hr_)) return ((ULONG)_hr_); }
    166 #define UlValidateParameters8(m,a1,a2,a3,a4,a5,a6,a7,a8) { HRESULT _hr_; MakeArray7(a2,a3,a4,a5,a6,a7,a8); _hr_ = HrValidateParameters(m,(void **)__rgArgs); if (HR_FAILED(_hr_)) return ((ULONG)_hr_); }
    167 #define UlValidateParameters9(m,a1,a2,a3,a4,a5,a6,a7,a8,a9) { HRESULT _hr_; MakeArray8(a2,a3,a4,a5,a6,a7,a8,a9); _hr_ = HrValidateParameters(m,(void **)__rgArgs); if (HR_FAILED(_hr_)) return ((ULONG)_hr_); }
    168 #define UlValidateParameters10(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) { HRESULT _hr_; MakeArray9(a2,a3,a4,a5,a6,a7,a8,a9,a10); _hr_ = HrValidateParameters(m,(void **)__rgArgs); if (HR_FAILED(_hr_)) return ((ULONG)_hr_); }
    169 #define UlValidateParameters11(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) { HRESULT _hr_; MakeArray10(a2,a3,a4,a5,a6,a7,a8,a9,a10,a11); _hr_ = HrValidateParameters(m,(void **)__rgArgs); if (HR_FAILED(_hr_)) return ((ULONG)_hr_); }
    170 #define UlValidateParameters12(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12) { HRESULT _hr_; MakeArray11(a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12); _hr_ = HrValidateParameters(m,(void **)__rgArgs); if (HR_FAILED(_hr_)) return ((ULONG)_hr_); }
    171 #define UlValidateParameters13(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13) { HRESULT _hr_; MakeArray12(a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13); _hr_ = HrValidateParameters(m,(void **)__rgArgs); if (HR_FAILED(_hr_)) return ((ULONG)_hr_); }
    172 #define UlValidateParameters14(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14) { HRESULT _hr_; MakeArray13(a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14); _hr_ = HrValidateParameters(m,(void **)__rgArgs); if (HR_FAILED(_hr_)) return ((ULONG)_hr_); }
    173 #define UlValidateParameters15(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15) { HRESULT _hr_; MakeArray14(a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15); _hr_ = HrValidateParameters(m,(void **)__rgArgs); if (HR_FAILED(_hr_)) return ((ULONG)_hr_); }
    174 #define UlValidateParameters16(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16) { HRESULT _hr_; MakeArray15(a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16); _hr_ = HrValidateParameters(m,(void **)__rgArgs); if (HR_FAILED(_hr_)) return ((ULONG)_hr_); }
    175 
    176 #define CheckParameters1(m,a1)
    177 #define CheckParameters2(m,a1,a2)
    178 #define CheckParameters3(m,a1,a2,a3)
    179 #define CheckParameters4(m,a1,a2,a3,a4)
    180 #define CheckParameters5(m,a1,a2,a3,a4,a5)
    181 #define CheckParameters6(m,a1,a2,a3,a4,a5,a6)
    182 #define CheckParameters7(m,a1,a2,a3,a4,a5,a6,a7)
    183 #define CheckParameters8(m,a1,a2,a3,a4,a5,a6,a7,a8)
    184 #define CheckParameters9(m,a1,a2,a3,a4,a5,a6,a7,a8,a9)
    185 #define CheckParameters10(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)
    186 #define CheckParameters11(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)
    187 #define CheckParameters12(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)
    188 #define CheckParameters13(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)
    189 #define CheckParameters14(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14)
    190 #define CheckParameters15(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)
    191 #define CheckParameters16(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16)
    192 
    193 #else
    194 #define ValidateParms(x) { HRESULT _hr_ = HrValidateParametersV x; if (HR_FAILED(_hr_)) return (_hr_); }
    195 #define UlValidateParms(x) { HRESULT _hr_ = HrValidateParametersV x; if (HR_FAILED(_hr_)) return (ULONG)(_hr_); }
    196 #define CheckParms(x) AssertSz(HR_SUCCEEDED(HrValidateParametersV x),"Parameter validation failed for method called by MAPI!")
    197 
    198 #define ValidateParameters1(m,a1) ValidateParms((m,a1))
    199 #define ValidateParameters2(m,a1,a2) ValidateParms((m,a1,a2))
    200 #define ValidateParameters3(m,a1,a2,a3) ValidateParms((m,a1,a2,a3))
    201 #define ValidateParameters4(m,a1,a2,a3,a4) ValidateParms((m,a1,a2,a3,a4))
    202 #define ValidateParameters5(m,a1,a2,a3,a4,a5) ValidateParms((m,a1,a2,a3,a4,a5))
    203 #define ValidateParameters6(m,a1,a2,a3,a4,a5,a6) ValidateParms((m,a1,a2,a3,a4,a5,a6))
    204 #define ValidateParameters7(m,a1,a2,a3,a4,a5,a6,a7) ValidateParms((m,a1,a2,a3,a4,a5,a6,a7))
    205 #define ValidateParameters8(m,a1,a2,a3,a4,a5,a6,a7,a8) ValidateParms((m,a1,a2,a3,a4,a5,a6,a7,a8))
    206 #define ValidateParameters9(m,a1,a2,a3,a4,a5,a6,a7,a8,a9) ValidateParms((m,a1,a2,a3,a4,a5,a6,a7,a8,a9))
    207 #define ValidateParameters10(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) ValidateParms((m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10))
    208 #define ValidateParameters11(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) ValidateParms((m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11))
    209 #define ValidateParameters12(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12) ValidateParms((m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12))
    210 #define ValidateParameters13(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13) ValidateParms((m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13))
    211 #define ValidateParameters14(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14) ValidateParms((m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14))
    212 #define ValidateParameters15(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15) ValidateParms((m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15))
    213 #define ValidateParameters16(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16) ValidateParms((m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16))
    214 
    215 #define UlValidateParameters1(m,a1) UlValidateParms((m,a1))
    216 #define UlValidateParameters2(m,a1,a2) UlValidateParms((m,a1,a2))
    217 #define UlValidateParameters3(m,a1,a2,a3) UlValidateParms((m,a1,a2,a3))
    218 #define UlValidateParameters4(m,a1,a2,a3,a4) UlValidateParms((m,a1,a2,a3,a4))
    219 #define UlValidateParameters5(m,a1,a2,a3,a4,a5) UlValidateParms((m,a1,a2,a3,a4,a5))
    220 #define UlValidateParameters6(m,a1,a2,a3,a4,a5,a6) UlValidateParms((m,a1,a2,a3,a4,a5,a6))
    221 #define UlValidateParameters7(m,a1,a2,a3,a4,a5,a6,a7) UlValidateParms((m,a1,a2,a3,a4,a5,a6,a7))
    222 #define UlValidateParameters8(m,a1,a2,a3,a4,a5,a6,a7,a8) UlValidateParms((m,a1,a2,a3,a4,a5,a6,a7,a8))
    223 #define UlValidateParameters9(m,a1,a2,a3,a4,a5,a6,a7,a8,a9) UlValidateParms((m,a1,a2,a3,a4,a5,a6,a7,a8,a9))
    224 #define UlValidateParameters10(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) UlValidateParms((m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10))
    225 #define UlValidateParameters11(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) UlValidateParms((m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11))
    226 #define UlValidateParameters12(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12) UlValidateParms((m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12))
    227 #define UlValidateParameters13(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13) UlValidateParms((m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13))
    228 #define UlValidateParameters14(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14) UlValidateParms((m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14))
    229 #define UlValidateParameters15(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15) UlValidateParms((m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15))
    230 #define UlValidateParameters16(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16) UlValidateParms((m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16))
    231 
    232 #define CheckParameters1(m,a1) CheckParms((m,a1))
    233 #define CheckParameters2(m,a1,a2) CheckParms((m,a1,a2))
    234 #define CheckParameters3(m,a1,a2,a3) CheckParms((m,a1,a2,a3))
    235 #define CheckParameters4(m,a1,a2,a3,a4) CheckParms((m,a1,a2,a3,a4))
    236 #define CheckParameters5(m,a1,a2,a3,a4,a5) CheckParms((m,a1,a2,a3,a4,a5))
    237 #define CheckParameters6(m,a1,a2,a3,a4,a5,a6) CheckParms((m,a1,a2,a3,a4,a5,a6))
    238 #define CheckParameters7(m,a1,a2,a3,a4,a5,a6,a7) CheckParms((m,a1,a2,a3,a4,a5,a6,a7))
    239 #define CheckParameters8(m,a1,a2,a3,a4,a5,a6,a7,a8) CheckParms((m,a1,a2,a3,a4,a5,a6,a7,a8))
    240 #define CheckParameters9(m,a1,a2,a3,a4,a5,a6,a7,a8,a9) CheckParms((m,a1,a2,a3,a4,a5,a6,a7,a8,a9))
    241 #define CheckParameters10(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) CheckParms((m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10))
    242 #define CheckParameters11(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) CheckParms((m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11))
    243 #define CheckParameters12(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12) CheckParms((m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12))
    244 #define CheckParameters13(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13) CheckParms((m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13))
    245 #define CheckParameters14(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14) CheckParms((m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14))
    246 #define CheckParameters15(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15) CheckParms((m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15))
    247 #define CheckParameters16(m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16) CheckParms((m,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16))
    248 #endif
    249 
    250 #define Validate_IUnknown_QueryInterface(a1,a2,a3) ValidateParameters3(IUnknown_QueryInterface,a1,a2,a3)
    251 #define UlValidate_IUnknown_QueryInterface(a1,a2,a3) UlValidateParameters3(IUnknown_QueryInterface,a1,a2,a3)
    252 #define CheckParameters_IUnknown_QueryInterface(a1,a2,a3) CheckParameters3(IUnknown_QueryInterface,a1,a2,a3)
    253 
    254 #define Validate_IUnknown_AddRef(a1) ValidateParameters1(IUnknown_AddRef,a1)
    255 #define UlValidate_IUnknown_AddRef(a1) UlValidateParameters1(IUnknown_AddRef,a1)
    256 #define CheckParameters_IUnknown_AddRef(a1) CheckParameters1(IUnknown_AddRef,a1)
    257 
    258 #define Validate_IUnknown_Release(a1) ValidateParameters1(IUnknown_Release,a1)
    259 #define UlValidate_IUnknown_Release(a1) UlValidateParameters1(IUnknown_Release,a1)
    260 #define CheckParameters_IUnknown_Release(a1) CheckParameters1(IUnknown_Release,a1)
    261 
    262 #define Validate_IMAPIProp_GetLastError(a1,a2,a3,a4) ValidateParameters4(IMAPIProp_GetLastError,a1,a2,a3,a4)
    263 #define UlValidate_IMAPIProp_GetLastError(a1,a2,a3,a4) UlValidateParameters4(IMAPIProp_GetLastError,a1,a2,a3,a4)
    264 #define CheckParameters_IMAPIProp_GetLastError(a1,a2,a3,a4) CheckParameters4(IMAPIProp_GetLastError,a1,a2,a3,a4)
    265 
    266 #define Validate_IMAPIProp_SaveChanges(a1,a2) ValidateParameters2(IMAPIProp_SaveChanges,a1,a2)
    267 #define UlValidate_IMAPIProp_SaveChanges(a1,a2) UlValidateParameters2(IMAPIProp_SaveChanges,a1,a2)
    268 #define CheckParameters_IMAPIProp_SaveChanges(a1,a2) CheckParameters2(IMAPIProp_SaveChanges,a1,a2)
    269 
    270 #define Validate_IMAPIProp_GetProps(a1,a2,a3,a4,a5) ValidateParameters5(IMAPIProp_GetProps,a1,a2,a3,a4,a5)
    271 #define UlValidate_IMAPIProp_GetProps(a1,a2,a3,a4,a5) UlValidateParameters5(IMAPIProp_GetProps,a1,a2,a3,a4,a5)
    272 #define CheckParameters_IMAPIProp_GetProps(a1,a2,a3,a4,a5) CheckParameters5(IMAPIProp_GetProps,a1,a2,a3,a4,a5)
    273 
    274 #define Validate_IMAPIProp_GetPropList(a1,a2,a3) ValidateParameters3(IMAPIProp_GetPropList,a1,a2,a3)
    275 #define UlValidate_IMAPIProp_GetPropList(a1,a2,a3) UlValidateParameters3(IMAPIProp_GetPropList,a1,a2,a3)
    276 #define CheckParameters_IMAPIProp_GetPropList(a1,a2,a3) CheckParameters3(IMAPIProp_GetPropList,a1,a2,a3)
    277 
    278 #define Validate_IMAPIProp_OpenProperty(a1,a2,a3,a4,a5,a6) ValidateParameters6(IMAPIProp_OpenProperty,a1,a2,a3,a4,a5,a6)
    279 #define UlValidate_IMAPIProp_OpenProperty(a1,a2,a3,a4,a5,a6) UlValidateParameters6(IMAPIProp_OpenProperty,a1,a2,a3,a4,a5,a6)
    280 #define CheckParameters_IMAPIProp_OpenProperty(a1,a2,a3,a4,a5,a6) CheckParameters6(IMAPIProp_OpenProperty,a1,a2,a3,a4,a5,a6)
    281 
    282 #define Validate_IMAPIProp_SetProps(a1,a2,a3,a4) ValidateParameters4(IMAPIProp_SetProps,a1,a2,a3,a4)
    283 #define UlValidate_IMAPIProp_SetProps(a1,a2,a3,a4) UlValidateParameters4(IMAPIProp_SetProps,a1,a2,a3,a4)
    284 #define CheckParameters_IMAPIProp_SetProps(a1,a2,a3,a4) CheckParameters4(IMAPIProp_SetProps,a1,a2,a3,a4)
    285 
    286 #define Validate_IMAPIProp_DeleteProps(a1,a2,a3) ValidateParameters3(IMAPIProp_DeleteProps,a1,a2,a3)
    287 #define UlValidate_IMAPIProp_DeleteProps(a1,a2,a3) UlValidateParameters3(IMAPIProp_DeleteProps,a1,a2,a3)
    288 #define CheckParameters_IMAPIProp_DeleteProps(a1,a2,a3) CheckParameters3(IMAPIProp_DeleteProps,a1,a2,a3)
    289 
    290 #define Validate_IMAPIProp_CopyTo(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) ValidateParameters10(IMAPIProp_CopyTo,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)
    291 #define UlValidate_IMAPIProp_CopyTo(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) UlValidateParameters10(IMAPIProp_CopyTo,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)
    292 #define CheckParameters_IMAPIProp_CopyTo(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) CheckParameters10(IMAPIProp_CopyTo,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)
    293 
    294 #define Validate_IMAPIProp_CopyProps(a1,a2,a3,a4,a5,a6,a7,a8) ValidateParameters8(IMAPIProp_CopyProps,a1,a2,a3,a4,a5,a6,a7,a8)
    295 #define UlValidate_IMAPIProp_CopyProps(a1,a2,a3,a4,a5,a6,a7,a8) UlValidateParameters8(IMAPIProp_CopyProps,a1,a2,a3,a4,a5,a6,a7,a8)
    296 #define CheckParameters_IMAPIProp_CopyProps(a1,a2,a3,a4,a5,a6,a7,a8) CheckParameters8(IMAPIProp_CopyProps,a1,a2,a3,a4,a5,a6,a7,a8)
    297 
    298 #define Validate_IMAPIProp_GetNamesFromIDs(a1,a2,a3,a4,a5,a6) ValidateParameters6(IMAPIProp_GetNamesFromIDs,a1,a2,a3,a4,a5,a6)
    299 #define UlValidate_IMAPIProp_GetNamesFromIDs(a1,a2,a3,a4,a5,a6) UlValidateParameters6(IMAPIProp_GetNamesFromIDs,a1,a2,a3,a4,a5,a6)
    300 #define CheckParameters_IMAPIProp_GetNamesFromIDs(a1,a2,a3,a4,a5,a6) CheckParameters6(IMAPIProp_GetNamesFromIDs,a1,a2,a3,a4,a5,a6)
    301 
    302 #define Validate_IMAPIProp_GetIDsFromNames(a1,a2,a3,a4,a5) ValidateParameters5(IMAPIProp_GetIDsFromNames,a1,a2,a3,a4,a5)
    303 #define UlValidate_IMAPIProp_GetIDsFromNames(a1,a2,a3,a4,a5) UlValidateParameters5(IMAPIProp_GetIDsFromNames,a1,a2,a3,a4,a5)
    304 #define CheckParameters_IMAPIProp_GetIDsFromNames(a1,a2,a3,a4,a5) CheckParameters5(IMAPIProp_GetIDsFromNames,a1,a2,a3,a4,a5)
    305 
    306 #define Validate_IMAPITable_GetLastError(a1,a2,a3,a4) ValidateParameters4(IMAPITable_GetLastError,a1,a2,a3,a4)
    307 #define UlValidate_IMAPITable_GetLastError(a1,a2,a3,a4) UlValidateParameters4(IMAPITable_GetLastError,a1,a2,a3,a4)
    308 #define CheckParameters_IMAPITable_GetLastError(a1,a2,a3,a4) CheckParameters4(IMAPITable_GetLastError,a1,a2,a3,a4)
    309 
    310 #define Validate_IMAPITable_Advise(a1,a2,a3,a4) ValidateParameters4(IMAPITable_Advise,a1,a2,a3,a4)
    311 #define UlValidate_IMAPITable_Advise(a1,a2,a3,a4) UlValidateParameters4(IMAPITable_Advise,a1,a2,a3,a4)
    312 #define CheckParameters_IMAPITable_Advise(a1,a2,a3,a4) CheckParameters4(IMAPITable_Advise,a1,a2,a3,a4)
    313 
    314 #define Validate_IMAPITable_Unadvise(a1,a2) ValidateParameters2(IMAPITable_Unadvise,a1,a2)
    315 #define UlValidate_IMAPITable_Unadvise(a1,a2) UlValidateParameters2(IMAPITable_Unadvise,a1,a2)
    316 #define CheckParameters_IMAPITable_Unadvise(a1,a2) CheckParameters2(IMAPITable_Unadvise,a1,a2)
    317 
    318 #define Validate_IMAPITable_GetStatus(a1,a2,a3) ValidateParameters3(IMAPITable_GetStatus,a1,a2,a3)
    319 #define UlValidate_IMAPITable_GetStatus(a1,a2,a3) UlValidateParameters3(IMAPITable_GetStatus,a1,a2,a3)
    320 #define CheckParameters_IMAPITable_GetStatus(a1,a2,a3) CheckParameters3(IMAPITable_GetStatus,a1,a2,a3)
    321 
    322 #define Validate_IMAPITable_SetColumns(a1,a2,a3) ValidateParameters3(IMAPITable_SetColumns,a1,a2,a3)
    323 #define UlValidate_IMAPITable_SetColumns(a1,a2,a3) UlValidateParameters3(IMAPITable_SetColumns,a1,a2,a3)
    324 #define CheckParameters_IMAPITable_SetColumns(a1,a2,a3) CheckParameters3(IMAPITable_SetColumns,a1,a2,a3)
    325 
    326 #define Validate_IMAPITable_QueryColumns(a1,a2,a3) ValidateParameters3(IMAPITable_QueryColumns,a1,a2,a3)
    327 #define UlValidate_IMAPITable_QueryColumns(a1,a2,a3) UlValidateParameters3(IMAPITable_QueryColumns,a1,a2,a3)
    328 #define CheckParameters_IMAPITable_QueryColumns(a1,a2,a3) CheckParameters3(IMAPITable_QueryColumns,a1,a2,a3)
    329 
    330 #define Validate_IMAPITable_GetRowCount(a1,a2,a3) ValidateParameters3(IMAPITable_GetRowCount,a1,a2,a3)
    331 #define UlValidate_IMAPITable_GetRowCount(a1,a2,a3) UlValidateParameters3(IMAPITable_GetRowCount,a1,a2,a3)
    332 #define CheckParameters_IMAPITable_GetRowCount(a1,a2,a3) CheckParameters3(IMAPITable_GetRowCount,a1,a2,a3)
    333 
    334 #define Validate_IMAPITable_SeekRow(a1,a2,a3,a4) ValidateParameters4(IMAPITable_SeekRow,a1,a2,a3,a4)
    335 #define UlValidate_IMAPITable_SeekRow(a1,a2,a3,a4) UlValidateParameters4(IMAPITable_SeekRow,a1,a2,a3,a4)
    336 #define CheckParameters_IMAPITable_SeekRow(a1,a2,a3,a4) CheckParameters4(IMAPITable_SeekRow,a1,a2,a3,a4)
    337 
    338 #define Validate_IMAPITable_SeekRowApprox(a1,a2,a3) ValidateParameters3(IMAPITable_SeekRowApprox,a1,a2,a3)
    339 #define UlValidate_IMAPITable_SeekRowApprox(a1,a2,a3) UlValidateParameters3(IMAPITable_SeekRowApprox,a1,a2,a3)
    340 #define CheckParameters_IMAPITable_SeekRowApprox(a1,a2,a3) CheckParameters3(IMAPITable_SeekRowApprox,a1,a2,a3)
    341 
    342 #define Validate_IMAPITable_QueryPosition(a1,a2,a3,a4) ValidateParameters4(IMAPITable_QueryPosition,a1,a2,a3,a4)
    343 #define UlValidate_IMAPITable_QueryPosition(a1,a2,a3,a4) UlValidateParameters4(IMAPITable_QueryPosition,a1,a2,a3,a4)
    344 #define CheckParameters_IMAPITable_QueryPosition(a1,a2,a3,a4) CheckParameters4(IMAPITable_QueryPosition,a1,a2,a3,a4)
    345 
    346 #define Validate_IMAPITable_FindRow(a1,a2,a3,a4) ValidateParameters4(IMAPITable_FindRow,a1,a2,a3,a4)
    347 #define UlValidate_IMAPITable_FindRow(a1,a2,a3,a4) UlValidateParameters4(IMAPITable_FindRow,a1,a2,a3,a4)
    348 #define CheckParameters_IMAPITable_FindRow(a1,a2,a3,a4) CheckParameters4(IMAPITable_FindRow,a1,a2,a3,a4)
    349 
    350 #define Validate_IMAPITable_Restrict(a1,a2,a3) ValidateParameters3(IMAPITable_Restrict,a1,a2,a3)
    351 #define UlValidate_IMAPITable_Restrict(a1,a2,a3) UlValidateParameters3(IMAPITable_Restrict,a1,a2,a3)
    352 #define CheckParameters_IMAPITable_Restrict(a1,a2,a3) CheckParameters3(IMAPITable_Restrict,a1,a2,a3)
    353 
    354 #define Validate_IMAPITable_CreateBookmark(a1,a2) ValidateParameters2(IMAPITable_CreateBookmark,a1,a2)
    355 #define UlValidate_IMAPITable_CreateBookmark(a1,a2) UlValidateParameters2(IMAPITable_CreateBookmark,a1,a2)
    356 #define CheckParameters_IMAPITable_CreateBookmark(a1,a2) CheckParameters2(IMAPITable_CreateBookmark,a1,a2)
    357 
    358 #define Validate_IMAPITable_FreeBookmark(a1,a2) ValidateParameters2(IMAPITable_FreeBookmark,a1,a2)
    359 #define UlValidate_IMAPITable_FreeBookmark(a1,a2) UlValidateParameters2(IMAPITable_FreeBookmark,a1,a2)
    360 #define CheckParameters_IMAPITable_FreeBookmark(a1,a2) CheckParameters2(IMAPITable_FreeBookmark,a1,a2)
    361 
    362 #define Validate_IMAPITable_SortTable(a1,a2,a3) ValidateParameters3(IMAPITable_SortTable,a1,a2,a3)
    363 #define UlValidate_IMAPITable_SortTable(a1,a2,a3) UlValidateParameters3(IMAPITable_SortTable,a1,a2,a3)
    364 #define CheckParameters_IMAPITable_SortTable(a1,a2,a3) CheckParameters3(IMAPITable_SortTable,a1,a2,a3)
    365 
    366 #define Validate_IMAPITable_QuerySortOrder(a1,a2) ValidateParameters2(IMAPITable_QuerySortOrder,a1,a2)
    367 #define UlValidate_IMAPITable_QuerySortOrder(a1,a2) UlValidateParameters2(IMAPITable_QuerySortOrder,a1,a2)
    368 #define CheckParameters_IMAPITable_QuerySortOrder(a1,a2) CheckParameters2(IMAPITable_QuerySortOrder,a1,a2)
    369 
    370 #define Validate_IMAPITable_QueryRows(a1,a2,a3,a4) ValidateParameters4(IMAPITable_QueryRows,a1,a2,a3,a4)
    371 #define UlValidate_IMAPITable_QueryRows(a1,a2,a3,a4) UlValidateParameters4(IMAPITable_QueryRows,a1,a2,a3,a4)
    372 #define CheckParameters_IMAPITable_QueryRows(a1,a2,a3,a4) CheckParameters4(IMAPITable_QueryRows,a1,a2,a3,a4)
    373 
    374 #define Validate_IMAPITable_Abort(a1) ValidateParameters1(IMAPITable_Abort,a1)
    375 #define UlValidate_IMAPITable_Abort(a1) UlValidateParameters1(IMAPITable_Abort,a1)
    376 #define CheckParameters_IMAPITable_Abort(a1) CheckParameters1(IMAPITable_Abort,a1)
    377 
    378 #define Validate_IMAPITable_ExpandRow(a1,a2,a3,a4,a5,a6,a7) ValidateParameters7(IMAPITable_ExpandRow,a1,a2,a3,a4,a5,a6,a7)
    379 #define UlValidate_IMAPITable_ExpandRow(a1,a2,a3,a4,a5,a6,a7) UlValidateParameters7(IMAPITable_ExpandRow,a1,a2,a3,a4,a5,a6,a7)
    380 #define CheckParameters_IMAPITable_ExpandRow(a1,a2,a3,a4,a5,a6,a7) CheckParameters7(IMAPITable_ExpandRow,a1,a2,a3,a4,a5,a6,a7)
    381 
    382 #define Validate_IMAPITable_CollapseRow(a1,a2,a3,a4,a5) ValidateParameters5(IMAPITable_CollapseRow,a1,a2,a3,a4,a5)
    383 #define UlValidate_IMAPITable_CollapseRow(a1,a2,a3,a4,a5) UlValidateParameters5(IMAPITable_CollapseRow,a1,a2,a3,a4,a5)
    384 #define CheckParameters_IMAPITable_CollapseRow(a1,a2,a3,a4,a5) CheckParameters5(IMAPITable_CollapseRow,a1,a2,a3,a4,a5)
    385 
    386 #define Validate_IMAPITable_WaitForCompletion(a1,a2,a3,a4) ValidateParameters4(IMAPITable_WaitForCompletion,a1,a2,a3,a4)
    387 #define UlValidate_IMAPITable_WaitForCompletion(a1,a2,a3,a4) UlValidateParameters4(IMAPITable_WaitForCompletion,a1,a2,a3,a4)
    388 #define CheckParameters_IMAPITable_WaitForCompletion(a1,a2,a3,a4) CheckParameters4(IMAPITable_WaitForCompletion,a1,a2,a3,a4)
    389 
    390 #define Validate_IMAPITable_GetCollapseState(a1,a2,a3,a4,a5,a6) ValidateParameters6(IMAPITable_GetCollapseState,a1,a2,a3,a4,a5,a6)
    391 #define UlValidate_IMAPITable_GetCollapseState(a1,a2,a3,a4,a5,a6) UlValidateParameters6(IMAPITable_GetCollapseState,a1,a2,a3,a4,a5,a6)
    392 #define CheckParameters_IMAPITable_GetCollapseState(a1,a2,a3,a4,a5,a6) CheckParameters6(IMAPITable_GetCollapseState,a1,a2,a3,a4,a5,a6)
    393 
    394 #define Validate_IMAPITable_SetCollapseState(a1,a2,a3,a4,a5) ValidateParameters5(IMAPITable_SetCollapseState,a1,a2,a3,a4,a5)
    395 #define UlValidate_IMAPITable_SetCollapseState(a1,a2,a3,a4,a5) UlValidateParameters5(IMAPITable_SetCollapseState,a1,a2,a3,a4,a5)
    396 #define CheckParameters_IMAPITable_SetCollapseState(a1,a2,a3,a4,a5) CheckParameters5(IMAPITable_SetCollapseState,a1,a2,a3,a4,a5)
    397 
    398 #define Validate_IMAPIContainer_GetContentsTable(a1,a2,a3) ValidateParameters3(IMAPIContainer_GetContentsTable,a1,a2,a3)
    399 #define UlValidate_IMAPIContainer_GetContentsTable(a1,a2,a3) UlValidateParameters3(IMAPIContainer_GetContentsTable,a1,a2,a3)
    400 #define CheckParameters_IMAPIContainer_GetContentsTable(a1,a2,a3) CheckParameters3(IMAPIContainer_GetContentsTable,a1,a2,a3)
    401 
    402 #define Validate_IMAPIContainer_GetHierarchyTable(a1,a2,a3) ValidateParameters3(IMAPIContainer_GetHierarchyTable,a1,a2,a3)
    403 #define UlValidate_IMAPIContainer_GetHierarchyTable(a1,a2,a3) UlValidateParameters3(IMAPIContainer_GetHierarchyTable,a1,a2,a3)
    404 #define CheckParameters_IMAPIContainer_GetHierarchyTable(a1,a2,a3) CheckParameters3(IMAPIContainer_GetHierarchyTable,a1,a2,a3)
    405 
    406 #define Validate_IMAPIContainer_OpenEntry(a1,a2,a3,a4,a5,a6,a7) ValidateParameters7(IMAPIContainer_OpenEntry,a1,a2,a3,a4,a5,a6,a7)
    407 #define UlValidate_IMAPIContainer_OpenEntry(a1,a2,a3,a4,a5,a6,a7) UlValidateParameters7(IMAPIContainer_OpenEntry,a1,a2,a3,a4,a5,a6,a7)
    408 #define CheckParameters_IMAPIContainer_OpenEntry(a1,a2,a3,a4,a5,a6,a7) CheckParameters7(IMAPIContainer_OpenEntry,a1,a2,a3,a4,a5,a6,a7)
    409 
    410 #define Validate_IMAPIContainer_SetSearchCriteria(a1,a2,a3,a4) ValidateParameters4(IMAPIContainer_SetSearchCriteria,a1,a2,a3,a4)
    411 #define UlValidate_IMAPIContainer_SetSearchCriteria(a1,a2,a3,a4) UlValidateParameters4(IMAPIContainer_SetSearchCriteria,a1,a2,a3,a4)
    412 #define CheckParameters_IMAPIContainer_SetSearchCriteria(a1,a2,a3,a4) CheckParameters4(IMAPIContainer_SetSearchCriteria,a1,a2,a3,a4)
    413 
    414 #define Validate_IMAPIContainer_GetSearchCriteria(a1,a2,a3,a4,a5) ValidateParameters5(IMAPIContainer_GetSearchCriteria,a1,a2,a3,a4,a5)
    415 #define UlValidate_IMAPIContainer_GetSearchCriteria(a1,a2,a3,a4,a5) UlValidateParameters5(IMAPIContainer_GetSearchCriteria,a1,a2,a3,a4,a5)
    416 #define CheckParameters_IMAPIContainer_GetSearchCriteria(a1,a2,a3,a4,a5) CheckParameters5(IMAPIContainer_GetSearchCriteria,a1,a2,a3,a4,a5)
    417 
    418 #define Validate_IABContainer_CreateEntry(a1,a2,a3,a4,a5) ValidateParameters5(IABContainer_CreateEntry,a1,a2,a3,a4,a5)
    419 #define UlValidate_IABContainer_CreateEntry(a1,a2,a3,a4,a5) UlValidateParameters5(IABContainer_CreateEntry,a1,a2,a3,a4,a5)
    420 #define CheckParameters_IABContainer_CreateEntry(a1,a2,a3,a4,a5) CheckParameters5(IABContainer_CreateEntry,a1,a2,a3,a4,a5)
    421 
    422 #define Validate_IABContainer_CopyEntries(a1,a2,a3,a4,a5) ValidateParameters5(IABContainer_CopyEntries,a1,a2,a3,a4,a5)
    423 #define UlValidate_IABContainer_CopyEntries(a1,a2,a3,a4,a5) UlValidateParameters5(IABContainer_CopyEntries,a1,a2,a3,a4,a5)
    424 #define CheckParameters_IABContainer_CopyEntries(a1,a2,a3,a4,a5) CheckParameters5(IABContainer_CopyEntries,a1,a2,a3,a4,a5)
    425 
    426 #define Validate_IABContainer_DeleteEntries(a1,a2,a3) ValidateParameters3(IABContainer_DeleteEntries,a1,a2,a3)
    427 #define UlValidate_IABContainer_DeleteEntries(a1,a2,a3) UlValidateParameters3(IABContainer_DeleteEntries,a1,a2,a3)
    428 #define CheckParameters_IABContainer_DeleteEntries(a1,a2,a3) CheckParameters3(IABContainer_DeleteEntries,a1,a2,a3)
    429 
    430 #define Validate_IABContainer_ResolveNames(a1,a2,a3,a4,a5) ValidateParameters5(IABContainer_ResolveNames,a1,a2,a3,a4,a5)
    431 #define UlValidate_IABContainer_ResolveNames(a1,a2,a3,a4,a5) UlValidateParameters5(IABContainer_ResolveNames,a1,a2,a3,a4,a5)
    432 #define CheckParameters_IABContainer_ResolveNames(a1,a2,a3,a4,a5) CheckParameters5(IABContainer_ResolveNames,a1,a2,a3,a4,a5)
    433 
    434 #define Validate_IDistList_CreateEntry(a1,a2,a3,a4,a5) ValidateParameters5(IDistList_CreateEntry,a1,a2,a3,a4,a5)
    435 #define UlValidate_IDistList_CreateEntry(a1,a2,a3,a4,a5) UlValidateParameters5(IDistList_CreateEntry,a1,a2,a3,a4,a5)
    436 #define CheckParameters_IDistList_CreateEntry(a1,a2,a3,a4,a5) CheckParameters5(IDistList_CreateEntry,a1,a2,a3,a4,a5)
    437 
    438 #define Validate_IDistList_CopyEntries(a1,a2,a3,a4,a5) ValidateParameters5(IDistList_CopyEntries,a1,a2,a3,a4,a5)
    439 #define UlValidate_IDistList_CopyEntries(a1,a2,a3,a4,a5) UlValidateParameters5(IDistList_CopyEntries,a1,a2,a3,a4,a5)
    440 #define CheckParameters_IDistList_CopyEntries(a1,a2,a3,a4,a5) CheckParameters5(IDistList_CopyEntries,a1,a2,a3,a4,a5)
    441 
    442 #define Validate_IDistList_DeleteEntries(a1,a2,a3) ValidateParameters3(IDistList_DeleteEntries,a1,a2,a3)
    443 #define UlValidate_IDistList_DeleteEntries(a1,a2,a3) UlValidateParameters3(IDistList_DeleteEntries,a1,a2,a3)
    444 #define CheckParameters_IDistList_DeleteEntries(a1,a2,a3) CheckParameters3(IDistList_DeleteEntries,a1,a2,a3)
    445 
    446 #define Validate_IDistList_ResolveNames(a1,a2,a3,a4,a5) ValidateParameters5(IDistList_ResolveNames,a1,a2,a3,a4,a5)
    447 #define UlValidate_IDistList_ResolveNames(a1,a2,a3,a4,a5) UlValidateParameters5(IDistList_ResolveNames,a1,a2,a3,a4,a5)
    448 #define CheckParameters_IDistList_ResolveNames(a1,a2,a3,a4,a5) CheckParameters5(IDistList_ResolveNames,a1,a2,a3,a4,a5)
    449 
    450 #define Validate_IMAPIFolder_CreateMessage(a1,a2,a3,a4) ValidateParameters4(IMAPIFolder_CreateMessage,a1,a2,a3,a4)
    451 #define UlValidate_IMAPIFolder_CreateMessage(a1,a2,a3,a4) UlValidateParameters4(IMAPIFolder_CreateMessage,a1,a2,a3,a4)
    452 #define CheckParameters_IMAPIFolder_CreateMessage(a1,a2,a3,a4) CheckParameters4(IMAPIFolder_CreateMessage,a1,a2,a3,a4)
    453 
    454 #define Validate_IMAPIFolder_CopyMessages(a1,a2,a3,a4,a5,a6,a7) ValidateParameters7(IMAPIFolder_CopyMessages,a1,a2,a3,a4,a5,a6,a7)
    455 #define UlValidate_IMAPIFolder_CopyMessages(a1,a2,a3,a4,a5,a6,a7) UlValidateParameters7(IMAPIFolder_CopyMessages,a1,a2,a3,a4,a5,a6,a7)
    456 #define CheckParameters_IMAPIFolder_CopyMessages(a1,a2,a3,a4,a5,a6,a7) CheckParameters7(IMAPIFolder_CopyMessages,a1,a2,a3,a4,a5,a6,a7)
    457 
    458 #define Validate_IMAPIFolder_DeleteMessages(a1,a2,a3,a4,a5) ValidateParameters5(IMAPIFolder_DeleteMessages,a1,a2,a3,a4,a5)
    459 #define UlValidate_IMAPIFolder_DeleteMessages(a1,a2,a3,a4,a5) UlValidateParameters5(IMAPIFolder_DeleteMessages,a1,a2,a3,a4,a5)
    460 #define CheckParameters_IMAPIFolder_DeleteMessages(a1,a2,a3,a4,a5) CheckParameters5(IMAPIFolder_DeleteMessages,a1,a2,a3,a4,a5)
    461 
    462 #define Validate_IMAPIFolder_CreateFolder(a1,a2,a3,a4,a5,a6,a7) ValidateParameters7(IMAPIFolder_CreateFolder,a1,a2,a3,a4,a5,a6,a7)
    463 #define UlValidate_IMAPIFolder_CreateFolder(a1,a2,a3,a4,a5,a6,a7) UlValidateParameters7(IMAPIFolder_CreateFolder,a1,a2,a3,a4,a5,a6,a7)
    464 #define CheckParameters_IMAPIFolder_CreateFolder(a1,a2,a3,a4,a5,a6,a7) CheckParameters7(IMAPIFolder_CreateFolder,a1,a2,a3,a4,a5,a6,a7)
    465 
    466 #define Validate_IMAPIFolder_CopyFolder(a1,a2,a3,a4,a5,a6,a7,a8,a9) ValidateParameters9(IMAPIFolder_CopyFolder,a1,a2,a3,a4,a5,a6,a7,a8,a9)
    467 #define UlValidate_IMAPIFolder_CopyFolder(a1,a2,a3,a4,a5,a6,a7,a8,a9) UlValidateParameters9(IMAPIFolder_CopyFolder,a1,a2,a3,a4,a5,a6,a7,a8,a9)
    468 #define CheckParameters_IMAPIFolder_CopyFolder(a1,a2,a3,a4,a5,a6,a7,a8,a9) CheckParameters9(IMAPIFolder_CopyFolder,a1,a2,a3,a4,a5,a6,a7,a8,a9)
    469 
    470 #define Validate_IMAPIFolder_DeleteFolder(a1,a2,a3,a4,a5,a6) ValidateParameters6(IMAPIFolder_DeleteFolder,a1,a2,a3,a4,a5,a6)
    471 #define UlValidate_IMAPIFolder_DeleteFolder(a1,a2,a3,a4,a5,a6) UlValidateParameters6(IMAPIFolder_DeleteFolder,a1,a2,a3,a4,a5,a6)
    472 #define CheckParameters_IMAPIFolder_DeleteFolder(a1,a2,a3,a4,a5,a6) CheckParameters6(IMAPIFolder_DeleteFolder,a1,a2,a3,a4,a5,a6)
    473 
    474 #define Validate_IMAPIFolder_SetReadFlags(a1,a2,a3,a4,a5) ValidateParameters5(IMAPIFolder_SetReadFlags,a1,a2,a3,a4,a5)
    475 #define UlValidate_IMAPIFolder_SetReadFlags(a1,a2,a3,a4,a5) UlValidateParameters5(IMAPIFolder_SetReadFlags,a1,a2,a3,a4,a5)
    476 #define CheckParameters_IMAPIFolder_SetReadFlags(a1,a2,a3,a4,a5) CheckParameters5(IMAPIFolder_SetReadFlags,a1,a2,a3,a4,a5)
    477 
    478 #define Validate_IMAPIFolder_GetMessageStatus(a1,a2,a3,a4,a5) ValidateParameters5(IMAPIFolder_GetMessageStatus,a1,a2,a3,a4,a5)
    479 #define UlValidate_IMAPIFolder_GetMessageStatus(a1,a2,a3,a4,a5) UlValidateParameters5(IMAPIFolder_GetMessageStatus,a1,a2,a3,a4,a5)
    480 #define CheckParameters_IMAPIFolder_GetMessageStatus(a1,a2,a3,a4,a5) CheckParameters5(IMAPIFolder_GetMessageStatus,a1,a2,a3,a4,a5)
    481 
    482 #define Validate_IMAPIFolder_SetMessageStatus(a1,a2,a3,a4,a5,a6) ValidateParameters6(IMAPIFolder_SetMessageStatus,a1,a2,a3,a4,a5,a6)
    483 #define UlValidate_IMAPIFolder_SetMessageStatus(a1,a2,a3,a4,a5,a6) UlValidateParameters6(IMAPIFolder_SetMessageStatus,a1,a2,a3,a4,a5,a6)
    484 #define CheckParameters_IMAPIFolder_SetMessageStatus(a1,a2,a3,a4,a5,a6) CheckParameters6(IMAPIFolder_SetMessageStatus,a1,a2,a3,a4,a5,a6)
    485 
    486 #define Validate_IMAPIFolder_SaveContentsSort(a1,a2,a3) ValidateParameters3(IMAPIFolder_SaveContentsSort,a1,a2,a3)
    487 #define UlValidate_IMAPIFolder_SaveContentsSort(a1,a2,a3) UlValidateParameters3(IMAPIFolder_SaveContentsSort,a1,a2,a3)
    488 #define CheckParameters_IMAPIFolder_SaveContentsSort(a1,a2,a3) CheckParameters3(IMAPIFolder_SaveContentsSort,a1,a2,a3)
    489 
    490 #define Validate_IMAPIFolder_EmptyFolder(a1,a2,a3,a4) ValidateParameters4(IMAPIFolder_EmptyFolder,a1,a2,a3,a4)
    491 #define UlValidate_IMAPIFolder_EmptyFolder(a1,a2,a3,a4) UlValidateParameters4(IMAPIFolder_EmptyFolder,a1,a2,a3,a4)
    492 #define CheckParameters_IMAPIFolder_EmptyFolder(a1,a2,a3,a4) CheckParameters4(IMAPIFolder_EmptyFolder,a1,a2,a3,a4)
    493 
    494 #define Validate_IMsgStore_Advise(a1,a2,a3,a4,a5,a6) ValidateParameters6(IMsgStore_Advise,a1,a2,a3,a4,a5,a6)
    495 #define UlValidate_IMsgStore_Advise(a1,a2,a3,a4,a5,a6) UlValidateParameters6(IMsgStore_Advise,a1,a2,a3,a4,a5,a6)
    496 #define CheckParameters_IMsgStore_Advise(a1,a2,a3,a4,a5,a6) CheckParameters6(IMsgStore_Advise,a1,a2,a3,a4,a5,a6)
    497 
    498 #define Validate_IMsgStore_Unadvise(a1,a2) ValidateParameters2(IMsgStore_Unadvise,a1,a2)
    499 #define UlValidate_IMsgStore_Unadvise(a1,a2) UlValidateParameters2(IMsgStore_Unadvise,a1,a2)
    500 #define CheckParameters_IMsgStore_Unadvise(a1,a2) CheckParameters2(IMsgStore_Unadvise,a1,a2)
    501 
    502 #define Validate_IMsgStore_CompareEntryIDs(a1,a2,a3,a4,a5,a6,a7) ValidateParameters7(IMsgStore_CompareEntryIDs,a1,a2,a3,a4,a5,a6,a7)
    503 #define UlValidate_IMsgStore_CompareEntryIDs(a1,a2,a3,a4,a5,a6,a7) UlValidateParameters7(IMsgStore_CompareEntryIDs,a1,a2,a3,a4,a5,a6,a7)
    504 #define CheckParameters_IMsgStore_CompareEntryIDs(a1,a2,a3,a4,a5,a6,a7) CheckParameters7(IMsgStore_CompareEntryIDs,a1,a2,a3,a4,a5,a6,a7)
    505 
    506 #define Validate_IMsgStore_OpenEntry(a1,a2,a3,a4,a5,a6,a7) ValidateParameters7(IMsgStore_OpenEntry,a1,a2,a3,a4,a5,a6,a7)
    507 #define UlValidate_IMsgStore_OpenEntry(a1,a2,a3,a4,a5,a6,a7) UlValidateParameters7(IMsgStore_OpenEntry,a1,a2,a3,a4,a5,a6,a7)
    508 #define CheckParameters_IMsgStore_OpenEntry(a1,a2,a3,a4,a5,a6,a7) CheckParameters7(IMsgStore_OpenEntry,a1,a2,a3,a4,a5,a6,a7)
    509 
    510 #define Validate_IMsgStore_SetReceiveFolder(a1,a2,a3,a4,a5) ValidateParameters5(IMsgStore_SetReceiveFolder,a1,a2,a3,a4,a5)
    511 #define UlValidate_IMsgStore_SetReceiveFolder(a1,a2,a3,a4,a5) UlValidateParameters5(IMsgStore_SetReceiveFolder,a1,a2,a3,a4,a5)
    512 #define CheckParameters_IMsgStore_SetReceiveFolder(a1,a2,a3,a4,a5) CheckParameters5(IMsgStore_SetReceiveFolder,a1,a2,a3,a4,a5)
    513 
    514 #define Validate_IMsgStore_GetReceiveFolder(a1,a2,a3,a4,a5,a6) ValidateParameters6(IMsgStore_GetReceiveFolder,a1,a2,a3,a4,a5,a6)
    515 #define UlValidate_IMsgStore_GetReceiveFolder(a1,a2,a3,a4,a5,a6) UlValidateParameters6(IMsgStore_GetReceiveFolder,a1,a2,a3,a4,a5,a6)
    516 #define CheckParameters_IMsgStore_GetReceiveFolder(a1,a2,a3,a4,a5,a6) CheckParameters6(IMsgStore_GetReceiveFolder,a1,a2,a3,a4,a5,a6)
    517 
    518 #define Validate_IMsgStore_GetReceiveFolderTable(a1,a2,a3) ValidateParameters3(IMsgStore_GetReceiveFolderTable,a1,a2,a3)
    519 #define UlValidate_IMsgStore_GetReceiveFolderTable(a1,a2,a3) UlValidateParameters3(IMsgStore_GetReceiveFolderTable,a1,a2,a3)
    520 #define CheckParameters_IMsgStore_GetReceiveFolderTable(a1,a2,a3) CheckParameters3(IMsgStore_GetReceiveFolderTable,a1,a2,a3)
    521 
    522 #define Validate_IMsgStore_StoreLogoff(a1,a2) ValidateParameters2(IMsgStore_StoreLogoff,a1,a2)
    523 #define UlValidate_IMsgStore_StoreLogoff(a1,a2) UlValidateParameters2(IMsgStore_StoreLogoff,a1,a2)
    524 #define CheckParameters_IMsgStore_StoreLogoff(a1,a2) CheckParameters2(IMsgStore_StoreLogoff,a1,a2)
    525 
    526 #define Validate_IMsgStore_AbortSubmit(a1,a2,a3,a4) ValidateParameters4(IMsgStore_AbortSubmit,a1,a2,a3,a4)
    527 #define UlValidate_IMsgStore_AbortSubmit(a1,a2,a3,a4) UlValidateParameters4(IMsgStore_AbortSubmit,a1,a2,a3,a4)
    528 #define CheckParameters_IMsgStore_AbortSubmit(a1,a2,a3,a4) CheckParameters4(IMsgStore_AbortSubmit,a1,a2,a3,a4)
    529 
    530 #define Validate_IMsgStore_GetOutgoingQueue(a1,a2,a3) ValidateParameters3(IMsgStore_GetOutgoingQueue,a1,a2,a3)
    531 #define UlValidate_IMsgStore_GetOutgoingQueue(a1,a2,a3) UlValidateParameters3(IMsgStore_GetOutgoingQueue,a1,a2,a3)
    532 #define CheckParameters_IMsgStore_GetOutgoingQueue(a1,a2,a3) CheckParameters3(IMsgStore_GetOutgoingQueue,a1,a2,a3)
    533 
    534 #define Validate_IMsgStore_SetLockState(a1,a2,a3) ValidateParameters3(IMsgStore_SetLockState,a1,a2,a3)
    535 #define UlValidate_IMsgStore_SetLockState(a1,a2,a3) UlValidateParameters3(IMsgStore_SetLockState,a1,a2,a3)
    536 #define CheckParameters_IMsgStore_SetLockState(a1,a2,a3) CheckParameters3(IMsgStore_SetLockState,a1,a2,a3)
    537 
    538 #define Validate_IMsgStore_FinishedMsg(a1,a2,a3,a4) ValidateParameters4(IMsgStore_FinishedMsg,a1,a2,a3,a4)
    539 #define UlValidate_IMsgStore_FinishedMsg(a1,a2,a3,a4) UlValidateParameters4(IMsgStore_FinishedMsg,a1,a2,a3,a4)
    540 #define CheckParameters_IMsgStore_FinishedMsg(a1,a2,a3,a4) CheckParameters4(IMsgStore_FinishedMsg,a1,a2,a3,a4)
    541 
    542 #define Validate_IMsgStore_NotifyNewMail(a1,a2) ValidateParameters2(IMsgStore_NotifyNewMail,a1,a2)
    543 #define UlValidate_IMsgStore_NotifyNewMail(a1,a2) UlValidateParameters2(IMsgStore_NotifyNewMail,a1,a2)
    544 #define CheckParameters_IMsgStore_NotifyNewMail(a1,a2) CheckParameters2(IMsgStore_NotifyNewMail,a1,a2)
    545 
    546 #define Validate_IMessage_GetAttachmentTable(a1,a2,a3) ValidateParameters3(IMessage_GetAttachmentTable,a1,a2,a3)
    547 #define UlValidate_IMessage_GetAttachmentTable(a1,a2,a3) UlValidateParameters3(IMessage_GetAttachmentTable,a1,a2,a3)
    548 #define CheckParameters_IMessage_GetAttachmentTable(a1,a2,a3) CheckParameters3(IMessage_GetAttachmentTable,a1,a2,a3)
    549 
    550 #define Validate_IMessage_OpenAttach(a1,a2,a3,a4,a5) ValidateParameters5(IMessage_OpenAttach,a1,a2,a3,a4,a5)
    551 #define UlValidate_IMessage_OpenAttach(a1,a2,a3,a4,a5) UlValidateParameters5(IMessage_OpenAttach,a1,a2,a3,a4,a5)
    552 #define CheckParameters_IMessage_OpenAttach(a1,a2,a3,a4,a5) CheckParameters5(IMessage_OpenAttach,a1,a2,a3,a4,a5)
    553 
    554 #define Validate_IMessage_CreateAttach(a1,a2,a3,a4,a5) ValidateParameters5(IMessage_CreateAttach,a1,a2,a3,a4,a5)
    555 #define UlValidate_IMessage_CreateAttach(a1,a2,a3,a4,a5) UlValidateParameters5(IMessage_CreateAttach,a1,a2,a3,a4,a5)
    556 #define CheckParameters_IMessage_CreateAttach(a1,a2,a3,a4,a5) CheckParameters5(IMessage_CreateAttach,a1,a2,a3,a4,a5)
    557 
    558 #define Validate_IMessage_DeleteAttach(a1,a2,a3,a4,a5) ValidateParameters5(IMessage_DeleteAttach,a1,a2,a3,a4,a5)
    559 #define UlValidate_IMessage_DeleteAttach(a1,a2,a3,a4,a5) UlValidateParameters5(IMessage_DeleteAttach,a1,a2,a3,a4,a5)
    560 #define CheckParameters_IMessage_DeleteAttach(a1,a2,a3,a4,a5) CheckParameters5(IMessage_DeleteAttach,a1,a2,a3,a4,a5)
    561 
    562 #define Validate_IMessage_GetRecipientTable(a1,a2,a3) ValidateParameters3(IMessage_GetRecipientTable,a1,a2,a3)
    563 #define UlValidate_IMessage_GetRecipientTable(a1,a2,a3) UlValidateParameters3(IMessage_GetRecipientTable,a1,a2,a3)
    564 #define CheckParameters_IMessage_GetRecipientTable(a1,a2,a3) CheckParameters3(IMessage_GetRecipientTable,a1,a2,a3)
    565 
    566 #define Validate_IMessage_ModifyRecipients(a1,a2,a3) ValidateParameters3(IMessage_ModifyRecipients,a1,a2,a3)
    567 #define UlValidate_IMessage_ModifyRecipients(a1,a2,a3) UlValidateParameters3(IMessage_ModifyRecipients,a1,a2,a3)
    568 #define CheckParameters_IMessage_ModifyRecipients(a1,a2,a3) CheckParameters3(IMessage_ModifyRecipients,a1,a2,a3)
    569 
    570 #define Validate_IMessage_SubmitMessage(a1,a2) ValidateParameters2(IMessage_SubmitMessage,a1,a2)
    571 #define UlValidate_IMessage_SubmitMessage(a1,a2) UlValidateParameters2(IMessage_SubmitMessage,a1,a2)
    572 #define CheckParameters_IMessage_SubmitMessage(a1,a2) CheckParameters2(IMessage_SubmitMessage,a1,a2)
    573 
    574 #define Validate_IMessage_SetReadFlag(a1,a2) ValidateParameters2(IMessage_SetReadFlag,a1,a2)
    575 #define UlValidate_IMessage_SetReadFlag(a1,a2) UlValidateParameters2(IMessage_SetReadFlag,a1,a2)
    576 #define CheckParameters_IMessage_SetReadFlag(a1,a2) CheckParameters2(IMessage_SetReadFlag,a1,a2)
    577 
    578 #define Validate_IABProvider_Shutdown(a1,a2) ValidateParameters2(IABProvider_Shutdown,a1,a2)
    579 #define UlValidate_IABProvider_Shutdown(a1,a2) UlValidateParameters2(IABProvider_Shutdown,a1,a2)
    580 #define CheckParameters_IABProvider_Shutdown(a1,a2) CheckParameters2(IABProvider_Shutdown,a1,a2)
    581 
    582 #define Validate_IABProvider_Logon(a1,a2,a3,a4,a5,a6,a7,a8,a9) ValidateParameters9(IABProvider_Logon,a1,a2,a3,a4,a5,a6,a7,a8,a9)
    583 #define UlValidate_IABProvider_Logon(a1,a2,a3,a4,a5,a6,a7,a8,a9) UlValidateParameters9(IABProvider_Logon,a1,a2,a3,a4,a5,a6,a7,a8,a9)
    584 #define CheckParameters_IABProvider_Logon(a1,a2,a3,a4,a5,a6,a7,a8,a9) CheckParameters9(IABProvider_Logon,a1,a2,a3,a4,a5,a6,a7,a8,a9)
    585 
    586 #define Validate_IABLogon_GetLastError(a1,a2,a3,a4) ValidateParameters4(IABLogon_GetLastError,a1,a2,a3,a4)
    587 #define UlValidate_IABLogon_GetLastError(a1,a2,a3,a4) UlValidateParameters4(IABLogon_GetLastError,a1,a2,a3,a4)
    588 #define CheckParameters_IABLogon_GetLastError(a1,a2,a3,a4) CheckParameters4(IABLogon_GetLastError,a1,a2,a3,a4)
    589 
    590 #define Validate_IABLogon_Logoff(a1,a2) ValidateParameters2(IABLogon_Logoff,a1,a2)
    591 #define UlValidate_IABLogon_Logoff(a1,a2) UlValidateParameters2(IABLogon_Logoff,a1,a2)
    592 #define CheckParameters_IABLogon_Logoff(a1,a2) CheckParameters2(IABLogon_Logoff,a1,a2)
    593 
    594 #define Validate_IABLogon_OpenEntry(a1,a2,a3,a4,a5,a6,a7) ValidateParameters7(IABLogon_OpenEntry,a1,a2,a3,a4,a5,a6,a7)
    595 #define UlValidate_IABLogon_OpenEntry(a1,a2,a3,a4,a5,a6,a7) UlValidateParameters7(IABLogon_OpenEntry,a1,a2,a3,a4,a5,a6,a7)
    596 #define CheckParameters_IABLogon_OpenEntry(a1,a2,a3,a4,a5,a6,a7) CheckParameters7(IABLogon_OpenEntry,a1,a2,a3,a4,a5,a6,a7)
    597 
    598 #define Validate_IABLogon_CompareEntryIDs(a1,a2,a3,a4,a5,a6,a7) ValidateParameters7(IABLogon_CompareEntryIDs,a1,a2,a3,a4,a5,a6,a7)
    599 #define UlValidate_IABLogon_CompareEntryIDs(a1,a2,a3,a4,a5,a6,a7) UlValidateParameters7(IABLogon_CompareEntryIDs,a1,a2,a3,a4,a5,a6,a7)
    600 #define CheckParameters_IABLogon_CompareEntryIDs(a1,a2,a3,a4,a5,a6,a7) CheckParameters7(IABLogon_CompareEntryIDs,a1,a2,a3,a4,a5,a6,a7)
    601 
    602 #define Validate_IABLogon_Advise(a1,a2,a3,a4,a5,a6) ValidateParameters6(IABLogon_Advise,a1,a2,a3,a4,a5,a6)
    603 #define UlValidate_IABLogon_Advise(a1,a2,a3,a4,a5,a6) UlValidateParameters6(IABLogon_Advise,a1,a2,a3,a4,a5,a6)
    604 #define CheckParameters_IABLogon_Advise(a1,a2,a3,a4,a5,a6) CheckParameters6(IABLogon_Advise,a1,a2,a3,a4,a5,a6)
    605 
    606 #define Validate_IABLogon_Unadvise(a1,a2) ValidateParameters2(IABLogon_Unadvise,a1,a2)
    607 #define UlValidate_IABLogon_Unadvise(a1,a2) UlValidateParameters2(IABLogon_Unadvise,a1,a2)
    608 #define CheckParameters_IABLogon_Unadvise(a1,a2) CheckParameters2(IABLogon_Unadvise,a1,a2)
    609 
    610 #define Validate_IABLogon_OpenStatusEntry(a1,a2,a3,a4,a5) ValidateParameters5(IABLogon_OpenStatusEntry,a1,a2,a3,a4,a5)
    611 #define UlValidate_IABLogon_OpenStatusEntry(a1,a2,a3,a4,a5) UlValidateParameters5(IABLogon_OpenStatusEntry,a1,a2,a3,a4,a5)
    612 #define CheckParameters_IABLogon_OpenStatusEntry(a1,a2,a3,a4,a5) CheckParameters5(IABLogon_OpenStatusEntry,a1,a2,a3,a4,a5)
    613 
    614 #define Validate_IABLogon_OpenTemplateID(a1,a2,a3,a4,a5,a6,a7,a8) ValidateParameters8(IABLogon_OpenTemplateID,a1,a2,a3,a4,a5,a6,a7,a8)
    615 #define UlValidate_IABLogon_OpenTemplateID(a1,a2,a3,a4,a5,a6,a7,a8) UlValidateParameters8(IABLogon_OpenTemplateID,a1,a2,a3,a4,a5,a6,a7,a8)
    616 #define CheckParameters_IABLogon_OpenTemplateID(a1,a2,a3,a4,a5,a6,a7,a8) CheckParameters8(IABLogon_OpenTemplateID,a1,a2,a3,a4,a5,a6,a7,a8)
    617 
    618 #define Validate_IABLogon_GetOneOffTable(a1,a2,a3) ValidateParameters3(IABLogon_GetOneOffTable,a1,a2,a3)
    619 #define UlValidate_IABLogon_GetOneOffTable(a1,a2,a3) UlValidateParameters3(IABLogon_GetOneOffTable,a1,a2,a3)
    620 #define CheckParameters_IABLogon_GetOneOffTable(a1,a2,a3) CheckParameters3(IABLogon_GetOneOffTable,a1,a2,a3)
    621 
    622 #define Validate_IABLogon_PrepareRecips(a1,a2,a3,a4) ValidateParameters4(IABLogon_PrepareRecips,a1,a2,a3,a4)
    623 #define UlValidate_IABLogon_PrepareRecips(a1,a2,a3,a4) UlValidateParameters4(IABLogon_PrepareRecips,a1,a2,a3,a4)
    624 #define CheckParameters_IABLogon_PrepareRecips(a1,a2,a3,a4) CheckParameters4(IABLogon_PrepareRecips,a1,a2,a3,a4)
    625 
    626 #define Validate_IXPProvider_Shutdown(a1,a2) ValidateParameters2(IXPProvider_Shutdown,a1,a2)
    627 #define UlValidate_IXPProvider_Shutdown(a1,a2) UlValidateParameters2(IXPProvider_Shutdown,a1,a2)
    628 #define CheckParameters_IXPProvider_Shutdown(a1,a2) CheckParameters2(IXPProvider_Shutdown,a1,a2)
    629 
    630 #define Validate_IXPProvider_TransportLogon(a1,a2,a3,a4,a5,a6,a7) ValidateParameters7(IXPProvider_TransportLogon,a1,a2,a3,a4,a5,a6,a7)
    631 #define UlValidate_IXPProvider_TransportLogon(a1,a2,a3,a4,a5,a6,a7) UlValidateParameters7(IXPProvider_TransportLogon,a1,a2,a3,a4,a5,a6,a7)
    632 #define CheckParameters_IXPProvider_TransportLogon(a1,a2,a3,a4,a5,a6,a7) CheckParameters7(IXPProvider_TransportLogon,a1,a2,a3,a4,a5,a6,a7)
    633 
    634 #define Validate_IXPLogon_AddressTypes(a1,a2,a3,a4,a5,a6) ValidateParameters6(IXPLogon_AddressTypes,a1,a2,a3,a4,a5,a6)
    635 #define UlValidate_IXPLogon_AddressTypes(a1,a2,a3,a4,a5,a6) UlValidateParameters6(IXPLogon_AddressTypes,a1,a2,a3,a4,a5,a6)
    636 #define CheckParameters_IXPLogon_AddressTypes(a1,a2,a3,a4,a5,a6) CheckParameters6(IXPLogon_AddressTypes,a1,a2,a3,a4,a5,a6)
    637 
    638 #define Validate_IXPLogon_RegisterOptions(a1,a2,a3,a4) ValidateParameters4(IXPLogon_RegisterOptions,a1,a2,a3,a4)
    639 #define UlValidate_IXPLogon_RegisterOptions(a1,a2,a3,a4) UlValidateParameters4(IXPLogon_RegisterOptions,a1,a2,a3,a4)
    640 #define CheckParameters_IXPLogon_RegisterOptions(a1,a2,a3,a4) CheckParameters4(IXPLogon_RegisterOptions,a1,a2,a3,a4)
    641 
    642 #define Validate_IXPLogon_TransportNotify(a1,a2,a3) ValidateParameters3(IXPLogon_TransportNotify,a1,a2,a3)
    643 #define UlValidate_IXPLogon_TransportNotify(a1,a2,a3) UlValidateParameters3(IXPLogon_TransportNotify,a1,a2,a3)
    644 #define CheckParameters_IXPLogon_TransportNotify(a1,a2,a3) CheckParameters3(IXPLogon_TransportNotify,a1,a2,a3)
    645 
    646 #define Validate_IXPLogon_Idle(a1,a2) ValidateParameters2(IXPLogon_Idle,a1,a2)
    647 #define UlValidate_IXPLogon_Idle(a1,a2) UlValidateParameters2(IXPLogon_Idle,a1,a2)
    648 #define CheckParameters_IXPLogon_Idle(a1,a2) CheckParameters2(IXPLogon_Idle,a1,a2)
    649 
    650 #define Validate_IXPLogon_TransportLogoff(a1,a2) ValidateParameters2(IXPLogon_TransportLogoff,a1,a2)
    651 #define UlValidate_IXPLogon_TransportLogoff(a1,a2) UlValidateParameters2(IXPLogon_TransportLogoff,a1,a2)
    652 #define CheckParameters_IXPLogon_TransportLogoff(a1,a2) CheckParameters2(IXPLogon_TransportLogoff,a1,a2)
    653 
    654 #define Validate_IXPLogon_SubmitMessage(a1,a2,a3,a4,a5) ValidateParameters5(IXPLogon_SubmitMessage,a1,a2,a3,a4,a5)
    655 #define UlValidate_IXPLogon_SubmitMessage(a1,a2,a3,a4,a5) UlValidateParameters5(IXPLogon_SubmitMessage,a1,a2,a3,a4,a5)
    656 #define CheckParameters_IXPLogon_SubmitMessage(a1,a2,a3,a4,a5) CheckParameters5(IXPLogon_SubmitMessage,a1,a2,a3,a4,a5)
    657 
    658 #define Validate_IXPLogon_EndMessage(a1,a2,a3) ValidateParameters3(IXPLogon_EndMessage,a1,a2,a3)
    659 #define UlValidate_IXPLogon_EndMessage(a1,a2,a3) UlValidateParameters3(IXPLogon_EndMessage,a1,a2,a3)
    660 #define CheckParameters_IXPLogon_EndMessage(a1,a2,a3) CheckParameters3(IXPLogon_EndMessage,a1,a2,a3)
    661 
    662 #define Validate_IXPLogon_Poll(a1,a2) ValidateParameters2(IXPLogon_Poll,a1,a2)
    663 #define UlValidate_IXPLogon_Poll(a1,a2) UlValidateParameters2(IXPLogon_Poll,a1,a2)
    664 #define CheckParameters_IXPLogon_Poll(a1,a2) CheckParameters2(IXPLogon_Poll,a1,a2)
    665 
    666 #define Validate_IXPLogon_StartMessage(a1,a2,a3,a4) ValidateParameters4(IXPLogon_StartMessage,a1,a2,a3,a4)
    667 #define UlValidate_IXPLogon_StartMessage(a1,a2,a3,a4) UlValidateParameters4(IXPLogon_StartMessage,a1,a2,a3,a4)
    668 #define CheckParameters_IXPLogon_StartMessage(a1,a2,a3,a4) CheckParameters4(IXPLogon_StartMessage,a1,a2,a3,a4)
    669 
    670 #define Validate_IXPLogon_OpenStatusEntry(a1,a2,a3,a4,a5) ValidateParameters5(IXPLogon_OpenStatusEntry,a1,a2,a3,a4,a5)
    671 #define UlValidate_IXPLogon_OpenStatusEntry(a1,a2,a3,a4,a5) UlValidateParameters5(IXPLogon_OpenStatusEntry,a1,a2,a3,a4,a5)
    672 #define CheckParameters_IXPLogon_OpenStatusEntry(a1,a2,a3,a4,a5) CheckParameters5(IXPLogon_OpenStatusEntry,a1,a2,a3,a4,a5)
    673 
    674 #define Validate_IXPLogon_ValidateState(a1,a2,a3) ValidateParameters3(IXPLogon_ValidateState,a1,a2,a3)
    675 #define UlValidate_IXPLogon_ValidateState(a1,a2,a3) UlValidateParameters3(IXPLogon_ValidateState,a1,a2,a3)
    676 #define CheckParameters_IXPLogon_ValidateState(a1,a2,a3) CheckParameters3(IXPLogon_ValidateState,a1,a2,a3)
    677 
    678 #define Validate_IXPLogon_FlushQueues(a1,a2,a3,a4,a5) ValidateParameters5(IXPLogon_FlushQueues,a1,a2,a3,a4,a5)
    679 #define UlValidate_IXPLogon_FlushQueues(a1,a2,a3,a4,a5) UlValidateParameters5(IXPLogon_FlushQueues,a1,a2,a3,a4,a5)
    680 #define CheckParameters_IXPLogon_FlushQueues(a1,a2,a3,a4,a5) CheckParameters5(IXPLogon_FlushQueues,a1,a2,a3,a4,a5)
    681 
    682 #define Validate_IMSProvider_Shutdown(a1,a2) ValidateParameters2(IMSProvider_Shutdown,a1,a2)
    683 #define UlValidate_IMSProvider_Shutdown(a1,a2) UlValidateParameters2(IMSProvider_Shutdown,a1,a2)
    684 #define CheckParameters_IMSProvider_Shutdown(a1,a2) CheckParameters2(IMSProvider_Shutdown,a1,a2)
    685 
    686 #define Validate_IMSProvider_Logon(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13) ValidateParameters13(IMSProvider_Logon,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)
    687 #define UlValidate_IMSProvider_Logon(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13) UlValidateParameters13(IMSProvider_Logon,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)
    688 #define CheckParameters_IMSProvider_Logon(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13) CheckParameters13(IMSProvider_Logon,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)
    689 
    690 #define Validate_IMSProvider_SpoolerLogon(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13) ValidateParameters13(IMSProvider_SpoolerLogon,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)
    691 #define UlValidate_IMSProvider_SpoolerLogon(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13) UlValidateParameters13(IMSProvider_SpoolerLogon,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)
    692 #define CheckParameters_IMSProvider_SpoolerLogon(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13) CheckParameters13(IMSProvider_SpoolerLogon,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)
    693 
    694 #define Validate_IMSProvider_CompareStoreIDs(a1,a2,a3,a4,a5,a6,a7) ValidateParameters7(IMSProvider_CompareStoreIDs,a1,a2,a3,a4,a5,a6,a7)
    695 #define UlValidate_IMSProvider_CompareStoreIDs(a1,a2,a3,a4,a5,a6,a7) UlValidateParameters7(IMSProvider_CompareStoreIDs,a1,a2,a3,a4,a5,a6,a7)
    696 #define CheckParameters_IMSProvider_CompareStoreIDs(a1,a2,a3,a4,a5,a6,a7) CheckParameters7(IMSProvider_CompareStoreIDs,a1,a2,a3,a4,a5,a6,a7)
    697 
    698 #define Validate_IMSLogon_GetLastError(a1,a2,a3,a4) ValidateParameters4(IMSLogon_GetLastError,a1,a2,a3,a4)
    699 #define UlValidate_IMSLogon_GetLastError(a1,a2,a3,a4) UlValidateParameters4(IMSLogon_GetLastError,a1,a2,a3,a4)
    700 #define CheckParameters_IMSLogon_GetLastError(a1,a2,a3,a4) CheckParameters4(IMSLogon_GetLastError,a1,a2,a3,a4)
    701 
    702 #define Validate_IMSLogon_Logoff(a1,a2) ValidateParameters2(IMSLogon_Logoff,a1,a2)
    703 #define UlValidate_IMSLogon_Logoff(a1,a2) UlValidateParameters2(IMSLogon_Logoff,a1,a2)
    704 #define CheckParameters_IMSLogon_Logoff(a1,a2) CheckParameters2(IMSLogon_Logoff,a1,a2)
    705 
    706 #define Validate_IMSLogon_OpenEntry(a1,a2,a3,a4,a5,a6,a7) ValidateParameters7(IMSLogon_OpenEntry,a1,a2,a3,a4,a5,a6,a7)
    707 #define UlValidate_IMSLogon_OpenEntry(a1,a2,a3,a4,a5,a6,a7) UlValidateParameters7(IMSLogon_OpenEntry,a1,a2,a3,a4,a5,a6,a7)
    708 #define CheckParameters_IMSLogon_OpenEntry(a1,a2,a3,a4,a5,a6,a7) CheckParameters7(IMSLogon_OpenEntry,a1,a2,a3,a4,a5,a6,a7)
    709 
    710 #define Validate_IMSLogon_CompareEntryIDs(a1,a2,a3,a4,a5,a6,a7) ValidateParameters7(IMSLogon_CompareEntryIDs,a1,a2,a3,a4,a5,a6,a7)
    711 #define UlValidate_IMSLogon_CompareEntryIDs(a1,a2,a3,a4,a5,a6,a7) UlValidateParameters7(IMSLogon_CompareEntryIDs,a1,a2,a3,a4,a5,a6,a7)
    712 #define CheckParameters_IMSLogon_CompareEntryIDs(a1,a2,a3,a4,a5,a6,a7) CheckParameters7(IMSLogon_CompareEntryIDs,a1,a2,a3,a4,a5,a6,a7)
    713 
    714 #define Validate_IMSLogon_Advise(a1,a2,a3,a4,a5,a6) ValidateParameters6(IMSLogon_Advise,a1,a2,a3,a4,a5,a6)
    715 #define UlValidate_IMSLogon_Advise(a1,a2,a3,a4,a5,a6) UlValidateParameters6(IMSLogon_Advise,a1,a2,a3,a4,a5,a6)
    716 #define CheckParameters_IMSLogon_Advise(a1,a2,a3,a4,a5,a6) CheckParameters6(IMSLogon_Advise,a1,a2,a3,a4,a5,a6)
    717 
    718 #define Validate_IMSLogon_Unadvise(a1,a2) ValidateParameters2(IMSLogon_Unadvise,a1,a2)
    719 #define UlValidate_IMSLogon_Unadvise(a1,a2) UlValidateParameters2(IMSLogon_Unadvise,a1,a2)
    720 #define CheckParameters_IMSLogon_Unadvise(a1,a2) CheckParameters2(IMSLogon_Unadvise,a1,a2)
    721 
    722 #define Validate_IMSLogon_OpenStatusEntry(a1,a2,a3,a4,a5) ValidateParameters5(IMSLogon_OpenStatusEntry,a1,a2,a3,a4,a5)
    723 #define UlValidate_IMSLogon_OpenStatusEntry(a1,a2,a3,a4,a5) UlValidateParameters5(IMSLogon_OpenStatusEntry,a1,a2,a3,a4,a5)
    724 #define CheckParameters_IMSLogon_OpenStatusEntry(a1,a2,a3,a4,a5) CheckParameters5(IMSLogon_OpenStatusEntry,a1,a2,a3,a4,a5)
    725 
    726 #define Validate_IMAPIControl_GetLastError(a1,a2,a3,a4) ValidateParameters4(IMAPIControl_GetLastError,a1,a2,a3,a4)
    727 #define UlValidate_IMAPIControl_GetLastError(a1,a2,a3,a4) UlValidateParameters4(IMAPIControl_GetLastError,a1,a2,a3,a4)
    728 #define CheckParameters_IMAPIControl_GetLastError(a1,a2,a3,a4) CheckParameters4(IMAPIControl_GetLastError,a1,a2,a3,a4)
    729 
    730 #define Validate_IMAPIControl_Activate(a1,a2,a3) ValidateParameters3(IMAPIControl_Activate,a1,a2,a3)
    731 #define UlValidate_IMAPIControl_Activate(a1,a2,a3) UlValidateParameters3(IMAPIControl_Activate,a1,a2,a3)
    732 #define CheckParameters_IMAPIControl_Activate(a1,a2,a3) CheckParameters3(IMAPIControl_Activate,a1,a2,a3)
    733 
    734 #define Validate_IMAPIControl_GetState(a1,a2,a3) ValidateParameters3(IMAPIControl_GetState,a1,a2,a3)
    735 #define UlValidate_IMAPIControl_GetState(a1,a2,a3) UlValidateParameters3(IMAPIControl_GetState,a1,a2,a3)
    736 #define CheckParameters_IMAPIControl_GetState(a1,a2,a3) CheckParameters3(IMAPIControl_GetState,a1,a2,a3)
    737 
    738 #define Validate_IMAPIStatus_ValidateState(a1,a2,a3) ValidateParameters3(IMAPIStatus_ValidateState,a1,a2,a3)
    739 #define UlValidate_IMAPIStatus_ValidateState(a1,a2,a3) UlValidateParameters3(IMAPIStatus_ValidateState,a1,a2,a3)
    740 #define CheckParameters_IMAPIStatus_ValidateState(a1,a2,a3) CheckParameters3(IMAPIStatus_ValidateState,a1,a2,a3)
    741 
    742 #define Validate_IMAPIStatus_SettingsDialog(a1,a2,a3) ValidateParameters3(IMAPIStatus_SettingsDialog,a1,a2,a3)
    743 #define UlValidate_IMAPIStatus_SettingsDialog(a1,a2,a3) UlValidateParameters3(IMAPIStatus_SettingsDialog,a1,a2,a3)
    744 #define CheckParameters_IMAPIStatus_SettingsDialog(a1,a2,a3) CheckParameters3(IMAPIStatus_SettingsDialog,a1,a2,a3)
    745 
    746 #define Validate_IMAPIStatus_ChangePassword(a1,a2,a3,a4) ValidateParameters4(IMAPIStatus_ChangePassword,a1,a2,a3,a4)
    747 #define UlValidate_IMAPIStatus_ChangePassword(a1,a2,a3,a4) UlValidateParameters4(IMAPIStatus_ChangePassword,a1,a2,a3,a4)
    748 #define CheckParameters_IMAPIStatus_ChangePassword(a1,a2,a3,a4) CheckParameters4(IMAPIStatus_ChangePassword,a1,a2,a3,a4)
    749 
    750 #define Validate_IMAPIStatus_FlushQueues(a1,a2,a3,a4,a5) ValidateParameters5(IMAPIStatus_FlushQueues,a1,a2,a3,a4,a5)
    751 #define UlValidate_IMAPIStatus_FlushQueues(a1,a2,a3,a4,a5) UlValidateParameters5(IMAPIStatus_FlushQueues,a1,a2,a3,a4,a5)
    752 #define CheckParameters_IMAPIStatus_FlushQueues(a1,a2,a3,a4,a5) CheckParameters5(IMAPIStatus_FlushQueues,a1,a2,a3,a4,a5)
    753 
    754 #define Validate_IStream_Read(a1,a2,a3,a4) ValidateParameters4(IStream_Read,a1,a2,a3,a4)
    755 #define UlValidate_IStream_Read(a1,a2,a3,a4) UlValidateParameters4(IStream_Read,a1,a2,a3,a4)
    756 #define CheckParameters_IStream_Read(a1,a2,a3,a4) CheckParameters4(IStream_Read,a1,a2,a3,a4)
    757 
    758 #define Validate_IStream_Write(a1,a2,a3,a4) ValidateParameters4(IStream_Write,a1,a2,a3,a4)
    759 #define UlValidate_IStream_Write(a1,a2,a3,a4) UlValidateParameters4(IStream_Write,a1,a2,a3,a4)
    760 #define CheckParameters_IStream_Write(a1,a2,a3,a4) CheckParameters4(IStream_Write,a1,a2,a3,a4)
    761 
    762 #define Validate_IStream_Seek(a1,a2,a3,a4) ValidateParameters4(IStream_Seek,a1,a2,a3,a4)
    763 #define UlValidate_IStream_Seek(a1,a2,a3,a4) UlValidateParameters4(IStream_Seek,a1,a2,a3,a4)
    764 #define CheckParameters_IStream_Seek(a1,a2,a3,a4) CheckParameters4(IStream_Seek,a1,a2,a3,a4)
    765 
    766 #define Validate_IStream_SetSize(a1,a2) ValidateParameters2(IStream_SetSize,a1,a2)
    767 #define UlValidate_IStream_SetSize(a1,a2) UlValidateParameters2(IStream_SetSize,a1,a2)
    768 #define CheckParameters_IStream_SetSize(a1,a2) CheckParameters2(IStream_SetSize,a1,a2)
    769 
    770 #define Validate_IStream_CopyTo(a1,a2,a3,a4,a5) ValidateParameters5(IStream_CopyTo,a1,a2,a3,a4,a5)
    771 #define UlValidate_IStream_CopyTo(a1,a2,a3,a4,a5) UlValidateParameters5(IStream_CopyTo,a1,a2,a3,a4,a5)
    772 #define CheckParameters_IStream_CopyTo(a1,a2,a3,a4,a5) CheckParameters5(IStream_CopyTo,a1,a2,a3,a4,a5)
    773 
    774 #define Validate_IStream_Commit(a1,a2) ValidateParameters2(IStream_Commit,a1,a2)
    775 #define UlValidate_IStream_Commit(a1,a2) UlValidateParameters2(IStream_Commit,a1,a2)
    776 #define CheckParameters_IStream_Commit(a1,a2) CheckParameters2(IStream_Commit,a1,a2)
    777 
    778 #define Validate_IStream_Revert(a1) ValidateParameters1(IStream_Revert,a1)
    779 #define UlValidate_IStream_Revert(a1) UlValidateParameters1(IStream_Revert,a1)
    780 #define CheckParameters_IStream_Revert(a1) CheckParameters1(IStream_Revert,a1)
    781 
    782 #define Validate_IStream_LockRegion(a1,a2,a3,a4) ValidateParameters4(IStream_LockRegion,a1,a2,a3,a4)
    783 #define UlValidate_IStream_LockRegion(a1,a2,a3,a4) UlValidateParameters4(IStream_LockRegion,a1,a2,a3,a4)
    784 #define CheckParameters_IStream_LockRegion(a1,a2,a3,a4) CheckParameters4(IStream_LockRegion,a1,a2,a3,a4)
    785 
    786 #define Validate_IStream_UnlockRegion(a1,a2,a3,a4) ValidateParameters4(IStream_UnlockRegion,a1,a2,a3,a4)
    787 #define UlValidate_IStream_UnlockRegion(a1,a2,a3,a4) UlValidateParameters4(IStream_UnlockRegion,a1,a2,a3,a4)
    788 #define CheckParameters_IStream_UnlockRegion(a1,a2,a3,a4) CheckParameters4(IStream_UnlockRegion,a1,a2,a3,a4)
    789 
    790 #define Validate_IStream_Stat(a1,a2,a3) ValidateParameters3(IStream_Stat,a1,a2,a3)
    791 #define UlValidate_IStream_Stat(a1,a2,a3) UlValidateParameters3(IStream_Stat,a1,a2,a3)
    792 #define CheckParameters_IStream_Stat(a1,a2,a3) CheckParameters3(IStream_Stat,a1,a2,a3)
    793 
    794 #define Validate_IStream_Clone(a1,a2) ValidateParameters2(IStream_Clone,a1,a2)
    795 #define UlValidate_IStream_Clone(a1,a2) UlValidateParameters2(IStream_Clone,a1,a2)
    796 #define CheckParameters_IStream_Clone(a1,a2) CheckParameters2(IStream_Clone,a1,a2)
    797 
    798 #define Validate_IMAPIAdviseSink_OnNotify(a1,a2,a3) ValidateParameters3(IMAPIAdviseSink_OnNotify,a1,a2,a3)
    799 #define UlValidate_IMAPIAdviseSink_OnNotify(a1,a2,a3) UlValidateParameters3(IMAPIAdviseSink_OnNotify,a1,a2,a3)
    800 #define CheckParameters_IMAPIAdviseSink_OnNotify(a1,a2,a3) CheckParameters3(IMAPIAdviseSink_OnNotify,a1,a2,a3)
    801 
    802 #if defined(_X86_)
    803   STDAPI HrValidateParameters(METHODS eMethod,LPVOID *ppFirstArg);
    804 #else
    805   STDAPIV HrValidateParametersV(METHODS eMethod,...);
    806   STDAPIV HrValidateParametersValist(METHODS eMethod,va_list arglist);
    807 #endif
    808 
    809 #ifdef __cplusplus
    810 }
    811 #endif
    812 #endif
    813