1 /* 2 * M A P I V A L . H 3 * 4 * Macros used to validate parameters on standard MAPI object methods. 5 * Used in conjunction with routines found in MAPIU.DLL. 6 * 7 * Copyright (c) 2009 Microsoft Corporation. All Rights Reserved. 8 */ 9 10 #ifndef _INC_VALIDATE 11 #define _INC_VALIDATE 12 13 #if _MSC_VER > 1000 14 #pragma once 15 #endif 16 17 #ifdef __cplusplus 18 extern "C" { 19 #endif 20 21 #ifndef MAPIUTIL_H 22 #include <mapiutil.h> 23 #endif 24 #include <stddef.h> 25 #include <stdarg.h> 26 27 28 #define MAKE_ENUM(Method, Interface) Interface##_##Method 29 30 typedef enum _tagMethods 31 { 32 /* IUnknown */ 33 MAKE_ENUM(QueryInterface, IUnknown) = 0, 34 MAKE_ENUM(AddRef, IUnknown), /* For completness */ 35 MAKE_ENUM(Release, IUnknown), /* For completness */ 36 37 /* IMAPIProps */ 38 MAKE_ENUM(GetLastError, IMAPIProp), 39 MAKE_ENUM(SaveChanges, IMAPIProp), 40 MAKE_ENUM(GetProps, IMAPIProp), 41 MAKE_ENUM(GetPropList, IMAPIProp), 42 MAKE_ENUM(OpenProperty, IMAPIProp), 43 MAKE_ENUM(SetProps, IMAPIProp), 44 MAKE_ENUM(DeleteProps, IMAPIProp), 45 MAKE_ENUM(CopyTo, IMAPIProp), 46 MAKE_ENUM(CopyProps, IMAPIProp), 47 MAKE_ENUM(GetNamesFromIDs, IMAPIProp), 48 MAKE_ENUM(GetIDsFromNames, IMAPIProp), 49 50 /* IMAPITable */ 51 MAKE_ENUM(GetLastError, IMAPITable), 52 MAKE_ENUM(Advise, IMAPITable), 53 MAKE_ENUM(Unadvise, IMAPITable), 54 MAKE_ENUM(GetStatus, IMAPITable), 55 MAKE_ENUM(SetColumns, IMAPITable), 56 MAKE_ENUM(QueryColumns, IMAPITable), 57 MAKE_ENUM(GetRowCount, IMAPITable), 58 MAKE_ENUM(SeekRow, IMAPITable), 59 MAKE_ENUM(SeekRowApprox, IMAPITable), 60 MAKE_ENUM(QueryPosition, IMAPITable), 61 MAKE_ENUM(FindRow, IMAPITable), 62 MAKE_ENUM(Restrict, IMAPITable), 63 MAKE_ENUM(CreateBookmark, IMAPITable), 64 MAKE_ENUM(FreeBookmark, IMAPITable), 65 MAKE_ENUM(SortTable, IMAPITable), 66 MAKE_ENUM(QuerySortOrder, IMAPITable), 67 MAKE_ENUM(QueryRows, IMAPITable), 68 MAKE_ENUM(Abort, IMAPITable), 69 MAKE_ENUM(ExpandRow, IMAPITable), 70 MAKE_ENUM(CollapseRow, IMAPITable), 71 MAKE_ENUM(WaitForCompletion, IMAPITable), 72 MAKE_ENUM(GetCollapseState, IMAPITable), 73 MAKE_ENUM(SetCollapseState, IMAPITable), 74 75 /* IMAPIContainer */ 76 MAKE_ENUM(GetContentsTable, IMAPIContainer), 77 MAKE_ENUM(GetHierarchyTable, IMAPIContainer), 78 MAKE_ENUM(OpenEntry, IMAPIContainer), 79 MAKE_ENUM(SetSearchCriteria, IMAPIContainer), 80 MAKE_ENUM(GetSearchCriteria, IMAPIContainer), 81 82 /* IABContainer */ 83 MAKE_ENUM(CreateEntry, IABContainer), 84 MAKE_ENUM(CopyEntries, IABContainer), 85 MAKE_ENUM(DeleteEntries, IABContainer), 86 MAKE_ENUM(ResolveNames, IABContainer), 87 88 /* IDistList */ 89 MAKE_ENUM(CreateEntry, IDistList), 90 MAKE_ENUM(CopyEntries, IDistList), 91 MAKE_ENUM(DeleteEntries, IDistList), 92 MAKE_ENUM(ResolveNames, IDistList), 93 94 /* IMAPIFolder */ 95 MAKE_ENUM(CreateMessage, IMAPIFolder), 96 MAKE_ENUM(CopyMessages, IMAPIFolder), 97 MAKE_ENUM(DeleteMessages, IMAPIFolder), 98 MAKE_ENUM(CreateFolder, IMAPIFolder), 99 MAKE_ENUM(CopyFolder, IMAPIFolder), 100 MAKE_ENUM(DeleteFolder, IMAPIFolder), 101 MAKE_ENUM(SetReadFlags, IMAPIFolder), 102 MAKE_ENUM(GetMessageStatus, IMAPIFolder), 103 MAKE_ENUM(SetMessageStatus, IMAPIFolder), 104 MAKE_ENUM(SaveContentsSort, IMAPIFolder), 105 MAKE_ENUM(EmptyFolder, IMAPIFolder), 106 107 /* IMsgStore */ 108 MAKE_ENUM(Advise, IMsgStore), 109 MAKE_ENUM(Unadvise, IMsgStore), 110 MAKE_ENUM(CompareEntryIDs, IMsgStore), 111 MAKE_ENUM(OpenEntry, IMsgStore), 112 MAKE_ENUM(SetReceiveFolder, IMsgStore), 113 MAKE_ENUM(GetReceiveFolder, IMsgStore), 114 MAKE_ENUM(GetReceiveFolderTable, IMsgStore), 115 MAKE_ENUM(StoreLogoff, IMsgStore), 116 MAKE_ENUM(AbortSubmit, IMsgStore), 117 MAKE_ENUM(GetOutgoingQueue, IMsgStore), 118 MAKE_ENUM(SetLockState, IMsgStore), 119 MAKE_ENUM(FinishedMsg, IMsgStore), 120 MAKE_ENUM(NotifyNewMail, IMsgStore), 121 122 /* IMessage */ 123 MAKE_ENUM(GetAttachmentTable, IMessage), 124 MAKE_ENUM(OpenAttach, IMessage), 125 MAKE_ENUM(CreateAttach, IMessage), 126 MAKE_ENUM(DeleteAttach, IMessage), 127 MAKE_ENUM(GetRecipientTable, IMessage), 128 MAKE_ENUM(ModifyRecipients, IMessage), 129 MAKE_ENUM(SubmitMessage, IMessage), 130 MAKE_ENUM(SetReadFlag, IMessage), 131 132 133 /* IABProvider */ 134 MAKE_ENUM(Shutdown, IABProvider), 135 MAKE_ENUM(Logon, IABProvider), 136 137 /* IABLogon */ 138 MAKE_ENUM(GetLastError, IABLogon), 139 MAKE_ENUM(Logoff, IABLogon), 140 MAKE_ENUM(OpenEntry, IABLogon), 141 MAKE_ENUM(CompareEntryIDs, IABLogon), 142 MAKE_ENUM(Advise, IABLogon), 143 MAKE_ENUM(Unadvise, IABLogon), 144 MAKE_ENUM(OpenStatusEntry, IABLogon), 145 MAKE_ENUM(OpenTemplateID, IABLogon), 146 MAKE_ENUM(GetOneOffTable, IABLogon), 147 MAKE_ENUM(PrepareRecips, IABLogon), 148 149 /* IXPProvider */ 150 MAKE_ENUM(Shutdown, IXPProvider), 151 MAKE_ENUM(TransportLogon, IXPProvider), 152 153 /* IXPLogon */ 154 MAKE_ENUM(AddressTypes, IXPLogon), 155 MAKE_ENUM(RegisterOptions, IXPLogon), 156 MAKE_ENUM(TransportNotify, IXPLogon), 157 MAKE_ENUM(Idle, IXPLogon), 158 MAKE_ENUM(TransportLogoff, IXPLogon), 159 MAKE_ENUM(SubmitMessage, IXPLogon), 160 MAKE_ENUM(EndMessage, IXPLogon), 161 MAKE_ENUM(Poll, IXPLogon), 162 MAKE_ENUM(StartMessage, IXPLogon), 163 MAKE_ENUM(OpenStatusEntry, IXPLogon), 164 MAKE_ENUM(ValidateState, IXPLogon), 165 MAKE_ENUM(FlushQueues, IXPLogon), 166 167 /* IMSProvider */ 168 MAKE_ENUM(Shutdown, IMSProvider), 169 MAKE_ENUM(Logon, IMSProvider), 170 MAKE_ENUM(SpoolerLogon, IMSProvider), 171 MAKE_ENUM(CompareStoreIDs, IMSProvider), 172 173 /* IMSLogon */ 174 MAKE_ENUM(GetLastError, IMSLogon), 175 MAKE_ENUM(Logoff, IMSLogon), 176 MAKE_ENUM(OpenEntry, IMSLogon), 177 MAKE_ENUM(CompareEntryIDs, IMSLogon), 178 MAKE_ENUM(Advise, IMSLogon), 179 MAKE_ENUM(Unadvise, IMSLogon), 180 MAKE_ENUM(OpenStatusEntry, IMSLogon), 181 182 /* IMAPIControl */ 183 MAKE_ENUM(GetLastError, IMAPIControl), 184 MAKE_ENUM(Activate, IMAPIControl), 185 MAKE_ENUM(GetState, IMAPIControl), 186 187 /* IMAPIStatus */ 188 MAKE_ENUM(ValidateState, IMAPIStatus), 189 MAKE_ENUM(SettingsDialog, IMAPIStatus), 190 MAKE_ENUM(ChangePassword, IMAPIStatus), 191 MAKE_ENUM(FlushQueues, IMAPIStatus), 192 193 /* IStream */ 194 MAKE_ENUM(_Read, IStream), 195 MAKE_ENUM(_Write, IStream), 196 MAKE_ENUM(Seek, IStream), 197 MAKE_ENUM(SetSize, IStream), 198 MAKE_ENUM(CopyTo, IStream), 199 MAKE_ENUM(Commit, IStream), 200 MAKE_ENUM(Revert, IStream), 201 MAKE_ENUM(LockRegion, IStream), 202 MAKE_ENUM(UnlockRegion, IStream), 203 MAKE_ENUM(Stat, IStream), 204 MAKE_ENUM(Clone, IStream), 205 206 /* IMAPIAdviseSink */ 207 MAKE_ENUM(OnNotify, IMAPIAdviseSink), 208 209 } METHODS; 210 211 212 /* Macro wrappers to hide the Validate function return handling */ 213 #if defined(_AMD64_) || defined(_X86_) 214 #ifdef __cplusplus 215 216 /* C++ methods can't take the address of the This pointer, so we must 217 use the first parameter instead */ 218 219 #define ValidateParameters(eMethod, First) \ 220 { HRESULT _hr_; \ 221 _hr_ = __CPPValidateParameters(eMethod, (LPVOID) &First); \ 222 if (HR_FAILED(_hr_)) return (_hr_); } 223 224 #define UlValidateParameters(eMethod, First) \ 225 { HRESULT _hr_; \ 226 _hr_ = __CPPValidateParameters(eMethod, &First); \ 227 if (HR_FAILED(_hr_)) return (ULONG) (_hr_); } 228 229 /* Methods called by MAPI should have correct parameters 230 - just assert in Debug to check */ 231 #define CheckParameters(eMethod, First) \ 232 AssertSz(HR_SUCCEEDED(__CPPValidateParameters(eMethod, &First)), "Parameter validation failed for method called by MAPI!") 233 234 235 #else /* __cplusplus */ 236 237 /* For methods that will be called by clients 238 - validate always */ 239 240 #define ValidateParameters(eMethod, ppThis) \ 241 { HRESULT _hr_; \ 242 _hr_ = __ValidateParameters(eMethod, ppThis); \ 243 if (HR_FAILED(_hr_)) return (_hr_); } 244 245 #define UlValidateParameters(eMethod, ppThis) \ 246 { HRESULT _hr_; \ 247 _hr_ = __ValidateParameters(eMethod, ppThis); \ 248 if (HR_FAILED(_hr_)) return (ULONG) (_hr_); } 249 250 /* Methods called by MAPI should have correct parameters 251 - just assert in Debug to check */ 252 #define CheckParameters(eMethod, ppThis) \ 253 AssertSz(HR_SUCCEEDED(__ValidateParameters(eMethod, ppThis)), "Parameter validation failed for method called by MAPI!") 254 255 #endif /* __cplusplus */ 256 #endif /* _X86_ || _AMD64_ */ 257 258 /* Prototypes for functions used to validate complex parameters. 259 */ 260 #define FBadPropVal( lpPropVal) (FAILED(ScCountProps( 1, lpPropVal, NULL))) 261 262 #define FBadRgPropVal( lpPropVal, cValues) \ 263 (FAILED(ScCountProps( cValues, lpPropVal, NULL))) 264 265 #define FBadAdrList( lpAdrList) \ 266 ( AssertSz( ( offsetof( ADRLIST, cEntries) \ 267 == offsetof( SRowSet, cRows)) \ 268 && ( offsetof( ADRLIST, aEntries) \ 269 == offsetof( SRowSet, aRow)) \ 270 && ( offsetof( ADRENTRY, cValues) \ 271 == offsetof( SRow, cValues)) \ 272 && ( offsetof( ADRENTRY, rgPropVals) \ 273 == offsetof( SRow, lpProps)) \ 274 , "ADRLIST doesn't match SRowSet") \ 275 || FBadRowSet( (LPSRowSet) lpAdrList)) 276 277 STDAPI_(BOOL) 278 FBadRglpszW(__in LPWSTR FAR *lppszW, 279 ULONG cStrings); 280 281 STDAPI_(BOOL) 282 FBadRowSet( LPSRowSet lpRowSet); 283 284 STDAPI_(BOOL) 285 FBadRglpNameID( LPMAPINAMEID FAR * lppNameId, 286 ULONG cNames); 287 288 STDAPI_(BOOL) 289 FBadEntryList( LPENTRYLIST lpEntryList); 290 291 292 /* BAD_STANDARD_OBJ 293 * 294 * This macro insures that the object is a writable object of the correct size 295 * and that this method belongs to the object. 296 * 297 * NOTES ON USE! 298 * This depends upon using the standard method of declaring the object 299 * interface. 300 * 301 * prefix is the method prefix you chose when declaring the object interface. 302 * method is the standard method name of the calling method. 303 * lpVtbl is the name of the lpVtbl element of your object. 304 */ 305 #define BAD_STANDARD_OBJ( lpObj, prefix, method, lpVtbl) \ 306 ( IsBadWritePtr( (lpObj), sizeof(*lpObj)) \ 307 || IsBadReadPtr( (void *) &(lpObj->lpVtbl->method), sizeof(LPVOID)) \ 308 ||( ( LPVOID) (lpObj->lpVtbl->method) != (LPVOID) (prefix##method))) 309 310 311 #define FBadUnknown( lpObj ) \ 312 ( IsBadReadPtr( (lpObj), sizeof(LPVOID) ) \ 313 || IsBadReadPtr( (lpObj)->lpVtbl, 3 * sizeof(LPUNKNOWN) ) \ 314 || IsBadCodePtr( (FARPROC)(lpObj)->lpVtbl->QueryInterface )) 315 316 /* 317 * IUnknown 318 */ 319 320 321 /* 322 * QueryInterface 323 */ 324 #define FBadQueryInterface( lpObj, riid, ppvObj) \ 325 ( IsBadReadPtr( riid, sizeof(IID)) \ 326 || IsBadWritePtr( ppvObj, sizeof(LPVOID))) 327 328 329 /* 330 * AddRef 331 * No parameter validation required. 332 */ 333 #define FBadAddRef( lpObj) FALSE 334 335 336 /* 337 * Release 338 * No parameter validation required. 339 */ 340 #define FBadRelease( lpObj) FALSE 341 342 343 /* 344 * GetLastError 345 */ 346 #define FBadGetLastError( lpObj, hResult, ulFlags, lppMAPIError )\ 347 (IsBadWritePtr( lppMAPIError, sizeof(LPMAPIERROR))) 348 349 /* 350 * IMAPIProp 351 */ 352 353 354 /* 355 * SaveChanges 356 * No parameter validation required. 357 */ 358 #define FBadSaveChanges( lpObj, ulFlags) FALSE 359 360 361 /* 362 * GetProps 363 */ 364 #define FBadGetProps( lpObj, lpPTagA, lpcValues, lppPropArray) \ 365 ( ( lpPTagA \ 366 && ( IsBadReadPtr( lpPTagA, sizeof(ULONG)) \ 367 || IsBadReadPtr( lpPTagA, (UINT)( (lpPTagA->cValues + 1) \ 368 * sizeof(ULONG))))) \ 369 || IsBadWritePtr( lpcValues, sizeof(ULONG)) \ 370 || IsBadWritePtr( lppPropArray, sizeof(LPSPropValue))) 371 372 373 /* 374 * GetPropList 375 */ 376 #define FBadGetPropList( lpObj, lppPTagA) \ 377 (IsBadWritePtr( lppPTagA, sizeof(LPSPropTagArray FAR *))) 378 379 380 /* 381 * OpenProperty 382 */ 383 #define FBadOpenProperty( lpObj, ulPropTag, lpiid, ulInterfaceOptions, ulFlags \ 384 , lppUnk) \ 385 ( IsBadReadPtr( lpiid, sizeof(IID)) \ 386 || IsBadWritePtr( lppUnk, sizeof (LPUNKNOWN FAR *))) 387 388 389 /* 390 * SetProps 391 */ 392 #define FBadSetProps( lpObj, cValues, lpPropArray, lppProblems) \ 393 ( FBadRgPropVal( lpPropArray, (UINT) cValues) \ 394 || ( lppProblems \ 395 && IsBadWritePtr( lppProblems, sizeof(LPSPropProblemArray)))) 396 397 398 /* 399 * DeleteProps 400 */ 401 #define FBadDeleteProps( lpObj, lpPTagA, lppProblems) \ 402 ( ( !lpPTagA \ 403 || ( IsBadReadPtr( lpPTagA, sizeof(ULONG)) \ 404 || IsBadReadPtr( lpPTagA, (UINT)( (lpPTagA->cValues + 1) \ 405 * sizeof(ULONG))))) \ 406 || ( lppProblems \ 407 && IsBadWritePtr( lppProblems, sizeof(LPSPropProblemArray)))) 408 409 410 /* 411 * CopyTo 412 */ 413 #define FBadCopyTo( lpIPDAT, ciidExclude, rgiidExclude, lpExcludeProps \ 414 , ulUIParam, lpProgress, lpInterface, lpDestObj \ 415 , ulFlags, lppProblems) \ 416 ( ( ciidExclude \ 417 && ( IsBadReadPtr( rgiidExclude, (UINT)(ciidExclude * sizeof(IID))))) \ 418 || ( lpExcludeProps \ 419 && ( IsBadReadPtr( lpExcludeProps, sizeof(ULONG)) \ 420 || IsBadReadPtr( lpExcludeProps \ 421 , (UINT)( (lpExcludeProps->cValues + 1) \ 422 * sizeof(ULONG))))) \ 423 || (lpProgress && FBadUnknown( lpProgress )) \ 424 || (lpInterface && IsBadReadPtr( lpInterface, sizeof(IID))) \ 425 || IsBadReadPtr( lpDestObj, sizeof(LPVOID)) \ 426 || ( lppProblems \ 427 && IsBadWritePtr( lppProblems, sizeof(LPSPropProblemArray)))) 428 429 430 /* 431 * CopyProps 432 */ 433 #define FBadCopyProps( lpIPDAT, lpPropTagArray \ 434 , ulUIParam, lpProgress, lpInterface, lpDestObj \ 435 , ulFlags, lppProblems) \ 436 ( ( lpPropTagArray \ 437 && ( IsBadReadPtr( lpPropTagArray, sizeof(ULONG)) \ 438 || IsBadReadPtr( lpPropTagArray \ 439 , (UINT)( (lpPropTagArray->cValues + 1) \ 440 * sizeof(ULONG))))) \ 441 || (lpProgress && FBadUnknown( lpProgress )) \ 442 || (lpInterface && IsBadReadPtr( lpInterface, sizeof(IID))) \ 443 || IsBadReadPtr( lpDestObj, sizeof(LPVOID)) \ 444 || ( lppProblems \ 445 && IsBadWritePtr( lppProblems, sizeof(LPSPropProblemArray)))) 446 447 448 449 /* 450 * GetNamesFromIDs 451 */ 452 #define FBadGetNamesFromIDs( lpIPDAT, lppPropTags, lpPropSetGuid, ulFlags, \ 453 lpcPropNames, lpppPropNames) \ 454 ( IsBadReadPtr( lppPropTags, sizeof(LPSPropTagArray)) \ 455 || ( lpPropSetGuid && IsBadReadPtr( lpPropSetGuid, sizeof(GUID))) \ 456 || ( *lppPropTags \ 457 && ( IsBadReadPtr( *lppPropTags, sizeof(ULONG)) \ 458 || IsBadReadPtr( *lppPropTags \ 459 , (UINT)( ( ( *lppPropTags)->cValues + 1) \ 460 * sizeof(ULONG))))) \ 461 || IsBadWritePtr( lpcPropNames, sizeof (ULONG)) \ 462 || IsBadWritePtr( lpppPropNames, sizeof (LPVOID FAR *))) 463 464 465 466 /* 467 * GetNamesFromIDs 468 */ 469 #define FBadGetIDsFromNames( lpIPDAT, cPropNames, lppPropNames, ulFlags \ 470 , lppPropTags) \ 471 ( (cPropNames && FBadRglpNameID( lppPropNames, cPropNames)) \ 472 || IsBadWritePtr( lppPropTags, sizeof(LPULONG FAR *))) 473 474 475 STDAPI_(ULONG) 476 FBadRestriction( LPSRestriction lpres ); 477 478 STDAPI_(ULONG) 479 FBadPropTag( ULONG ulPropTag ); 480 481 STDAPI_(ULONG) 482 FBadRow( LPSRow lprow ); 483 484 STDAPI_(ULONG) 485 FBadProp( LPSPropValue lpprop ); 486 487 STDAPI_(ULONG) 488 FBadSortOrderSet( LPSSortOrderSet lpsos ); 489 490 STDAPI_(ULONG) 491 FBadColumnSet( LPSPropTagArray lpptaCols ); 492 493 /* Validation function 494 495 The eMethod parameter tells us which internal validation to perform. 496 497 The ppThis parameter tells us where the stack is, so we can access the other 498 parameters. 499 500 Becuase of this *magic* we MUST obtain the pointer to the This pointer in 501 the method function. 502 503 */ 504 505 #if defined(_WIN64) || defined(_WIN32) 506 #define BASED_STACK 507 #else 508 #error "Unknown Platform: MAPI is currently supported on Win32 and Win64" 509 #endif 510 511 #if defined(_WIN64) || defined(_WIN32) 512 HRESULT STDAPICALLTYPE 513 #else 514 #error "Unknown Platform: MAPI is currently supported on Win32 and Win64" 515 #endif 516 517 __CPPValidateParameters(METHODS eMethod, const LPVOID ppFirst); 518 519 #if defined(_WIN64) || defined(_WIN32) 520 HRESULT STDAPICALLTYPE 521 #else 522 #error "Unknown Platform: MAPI is currently supported on Win32 and Win64" 523 #endif 524 __ValidateParameters(METHODS eMethod, LPVOID ppThis); 525 526 #ifdef _MAC 527 #define STDAPIVCALLTYPE __cdecl 528 #define STDAPIV EXTERN_C HRESULT STDAPIVCALLTYPE 529 #define STDAPIV_(type) EXTERN_C type STDAPIVCALLTYPE 530 #endif /* _MAC */ 531 532 /* Macro wrappers for platform independent validation */ 533 534 #if defined(_AMD64_) || defined(_X86_) 535 536 #define ArgShiftN (1 + (sizeof(DWORD_PTR)>>2)) 537 #define ArgSize(T) ((sizeof(T)+sizeof(DWORD_PTR)-1)>>ArgShiftN) 538 539 #define MakeArg1(idx, a1) memcpy(__rgArgs+idx, &a1, ArgSize(a1)*sizeof(DWORD_PTR)) 540 #define MakeArg2(idx, a1, a2) MakeArg1(idx, a1); MakeArg1(idx+ArgSize(a1), a2) 541 #define MakeArg3(idx, a1, a2, a3) MakeArg1(idx, a1); MakeArg2(idx+ArgSize(a1), a2, a3) 542 #define MakeArg4(idx, a1, a2, a3, a4) MakeArg1(idx, a1); MakeArg3(idx+ArgSize(a1), a2, a3, a4) 543 #define MakeArg5(idx, a1, a2, a3, a4, a5) MakeArg1(idx, a1); MakeArg4(idx+ArgSize(a1), a2, a3, a4, a5) 544 #define MakeArg6(idx, a1, a2, a3, a4, a5, a6) MakeArg1(idx, a1); MakeArg5(idx+ArgSize(a1), a2, a3, a4, a5, a6) 545 #define MakeArg7(idx, a1, a2, a3, a4, a5, a6, a7) MakeArg1(idx, a1); MakeArg6(idx+ArgSize(a1), a2, a3, a4, a5, a6, a7) 546 #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) 547 #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) 548 #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) 549 #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) 550 #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) 551 #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) 552 #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) 553 #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) 554 #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) 555 556 #define MakeArray1(a1) \ 557 DWORD_PTR __rgArgs[ArgSize(a1)]; \ 558 MakeArg1(0, a1) 559 560 #define MakeArray2(a1, a2) \ 561 DWORD_PTR __rgArgs[ArgSize(a1) + ArgSize(a2)]; \ 562 MakeArg2(0, a1, a2) 563 564 #define MakeArray3(a1, a2, a3) \ 565 DWORD_PTR __rgArgs[ArgSize(a1) + ArgSize(a2) + ArgSize(a3)]; \ 566 MakeArg3(0, a1, a2, a3) 567 568 #define MakeArray4(a1, a2, a3, a4) \ 569 DWORD_PTR __rgArgs[ArgSize(a1) + ArgSize(a2) + ArgSize(a3) + ArgSize(a4)]; \ 570 MakeArg4(0, a1, a2, a3, a4) 571 572 #define MakeArray5(a1, a2, a3, a4, a5) \ 573 DWORD_PTR __rgArgs[ArgSize(a1) + ArgSize(a2) + ArgSize(a3) + ArgSize(a4) + ArgSize(a5)]; \ 574 MakeArg5(0, a1, a2, a3, a4, a5) 575 576 #define MakeArray6(a1, a2, a3, a4, a5, a6) \ 577 DWORD_PTR __rgArgs[ArgSize(a1) + ArgSize(a2) + ArgSize(a3) + ArgSize(a4) + ArgSize(a5) + ArgSize(a6)]; \ 578 MakeArg6(0, a1, a2, a3, a4, a5, a6) 579 580 #define MakeArray7(a1, a2, a3, a4, a5, a6, a7) \ 581 DWORD_PTR __rgArgs[ArgSize(a1) + ArgSize(a2) + ArgSize(a3) + ArgSize(a4) + ArgSize(a5) + ArgSize(a6) + ArgSize(a7)]; \ 582 MakeArg7(0, a1, a2, a3, a4, a5, a6, a7) 583 584 #define MakeArray8(a1, a2, a3, a4, a5, a6, a7, a8) \ 585 DWORD_PTR __rgArgs[ArgSize(a1) + ArgSize(a2) + ArgSize(a3) + ArgSize(a4) + ArgSize(a5) + ArgSize(a6) + ArgSize(a7) + ArgSize(a8)]; \ 586 MakeArg8(0, a1, a2, a3, a4, a5, a6, a7, a8) 587 588 #define MakeArray9(a1, a2, a3, a4, a5, a6, a7, a8, a9) \ 589 DWORD_PTR __rgArgs[ArgSize(a1) + ArgSize(a2) + ArgSize(a3) + ArgSize(a4) + ArgSize(a5) + ArgSize(a6) + ArgSize(a7) + ArgSize(a8) + ArgSize(a9)]; \ 590 MakeArg9(0, a1, a2, a3, a4, a5, a6, a7, a8, a9) 591 592 #define MakeArray10(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) \ 593 DWORD_PTR __rgArgs[ArgSize(a1) + ArgSize(a2) + ArgSize(a3) + ArgSize(a4) + ArgSize(a5) + ArgSize(a6) + ArgSize(a7) + ArgSize(a8) + ArgSize(a9) + ArgSize(a10)]; \ 594 MakeArg10(0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) 595 596 #define MakeArray11(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) \ 597 DWORD_PTR __rgArgs[ArgSize(a1) + ArgSize(a2) + ArgSize(a3) + ArgSize(a4) + ArgSize(a5) + ArgSize(a6) + ArgSize(a7) + ArgSize(a8) + ArgSize(a9) + ArgSize(a10) + ArgSize(a11)]; \ 598 MakeArg11(0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) 599 600 #define MakeArray12(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) \ 601 DWORD_PTR __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)]; \ 602 MakeArg12(0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) 603 604 #define MakeArray13(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) \ 605 DWORD_PTR __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)]; \ 606 MakeArg13(0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) 607 608 #define MakeArray14(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) \ 609 DWORD_PTR __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)]; \ 610 MakeArg14(0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) 611 612 #define MakeArray15(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) \ 613 DWORD_PTR __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)]; \ 614 MakeArg15(0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) 615 616 #define MakeArray16(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) \ 617 DWORD_PTR __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)]; \ 618 MakeArg16(0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) 619 620 621 622 #define ValidateParameters1( m, a1 ) 623 #define ValidateParameters2( m, a1, a2 ) \ 624 { HRESULT _hr_; \ 625 MakeArray1(a2); \ 626 _hr_ = HrValidateParameters(m, (void **)__rgArgs); if (HR_FAILED(_hr_)) return (_hr_); } 627 #define ValidateParameters3( m, a1, a2, a3 ) \ 628 { HRESULT _hr_; \ 629 MakeArray2(a2, a3); \ 630 _hr_ = HrValidateParameters(m, (void **)__rgArgs); if (HR_FAILED(_hr_)) return (_hr_); } 631 #define ValidateParameters4( m, a1, a2, a3, a4 ) \ 632 { HRESULT _hr_; \ 633 MakeArray3(a2, a3, a4); \ 634 _hr_ = HrValidateParameters(m, (void **)__rgArgs); if (HR_FAILED(_hr_)) return (_hr_); } 635 #define ValidateParameters5( m, a1, a2, a3, a4, a5 ) \ 636 { HRESULT _hr_; \ 637 MakeArray4(a2, a3, a4, a5); \ 638 _hr_ = HrValidateParameters(m, (void **)__rgArgs); if (HR_FAILED(_hr_)) return (_hr_); } 639 #define ValidateParameters6( m, a1, a2, a3, a4, a5, a6 ) \ 640 { HRESULT _hr_; \ 641 MakeArray5(a2, a3, a4, a5, a6); \ 642 _hr_ = HrValidateParameters(m, (void **)__rgArgs); if (HR_FAILED(_hr_)) return (_hr_); } 643 #define ValidateParameters7( m, a1, a2, a3, a4, a5, a6, a7 ) \ 644 { HRESULT _hr_; \ 645 MakeArray6(a2, a3, a4, a5, a6, a7); \ 646 _hr_ = HrValidateParameters(m, (void **)__rgArgs); if (HR_FAILED(_hr_)) return (_hr_); } 647 #define ValidateParameters8( m, a1, a2, a3, a4, a5, a6, a7, a8 ) \ 648 { HRESULT _hr_; \ 649 MakeArray7(a2, a3, a4, a5, a6, a7, a8); \ 650 _hr_ = HrValidateParameters(m, (void **)__rgArgs); if (HR_FAILED(_hr_)) return (_hr_); } 651 #define ValidateParameters9( m, a1, a2, a3, a4, a5, a6, a7, a8, a9 ) \ 652 { HRESULT _hr_; \ 653 MakeArray8(a2, a3, a4, a5, a6, a7, a8, a9); \ 654 _hr_ = HrValidateParameters(m, (void **)__rgArgs); if (HR_FAILED(_hr_)) return (_hr_); } 655 #define ValidateParameters10( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 ) \ 656 { HRESULT _hr_; \ 657 MakeArray9(a2, a3, a4, a5, a6, a7, a8, a9, a10); \ 658 _hr_ = HrValidateParameters(m, (void **)__rgArgs); if (HR_FAILED(_hr_)) return (_hr_); } 659 #define ValidateParameters11( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11 ) \ 660 { HRESULT _hr_; \ 661 MakeArray10(a2, a3, a4, a5, a6, a7, a8, a9, a10, a11); \ 662 _hr_ = HrValidateParameters(m, (void **)__rgArgs); if (HR_FAILED(_hr_)) return (_hr_); } 663 #define ValidateParameters12( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12 ) \ 664 { HRESULT _hr_; \ 665 MakeArray11(a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12); \ 666 _hr_ = HrValidateParameters(m, (void **)__rgArgs); if (HR_FAILED(_hr_)) return (_hr_); } 667 #define ValidateParameters13( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13 ) \ 668 { HRESULT _hr_; \ 669 MakeArray12(a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13); \ 670 _hr_ = HrValidateParameters(m, (void **)__rgArgs); if (HR_FAILED(_hr_)) return (_hr_); } 671 #define ValidateParameters14( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14 ) \ 672 { HRESULT _hr_; \ 673 MakeArray13(a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14); \ 674 _hr_ = HrValidateParameters(m, (void **)__rgArgs); if (HR_FAILED(_hr_)) return (_hr_); } 675 #define ValidateParameters15( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15 ) \ 676 { HRESULT _hr_; \ 677 MakeArray14(a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); \ 678 _hr_ = HrValidateParameters(m, (void **)__rgArgs); if (HR_FAILED(_hr_)) return (_hr_); } 679 #define ValidateParameters16( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16 ) \ 680 { HRESULT _hr_; \ 681 MakeArray15(a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16); \ 682 _hr_ = HrValidateParameters(m, (void **)__rgArgs); if (HR_FAILED(_hr_)) return (_hr_); } 683 684 #define UlValidateParameters1( m, a1 ) 685 #define UlValidateParameters2( m, a1, a2 ) \ 686 { HRESULT _hr_; \ 687 MakeArray1(a2); \ 688 _hr_ = HrValidateParameters(m, (void **)__rgArgs); if (HR_FAILED(_hr_)) return ((ULONG)_hr_); } 689 #define UlValidateParameters3( m, a1, a2, a3 ) \ 690 { HRESULT _hr_; \ 691 MakeArray2(a2, a3); \ 692 _hr_ = HrValidateParameters(m, (void **)__rgArgs); if (HR_FAILED(_hr_)) return ((ULONG)_hr_); } 693 #define UlValidateParameters4( m, a1, a2, a3, a4 ) \ 694 { HRESULT _hr_; \ 695 MakeArray3(a2, a3, a4); \ 696 _hr_ = HrValidateParameters(m, (void **)__rgArgs); if (HR_FAILED(_hr_)) return ((ULONG)_hr_); } 697 #define UlValidateParameters5( m, a1, a2, a3, a4, a5 ) \ 698 { HRESULT _hr_; \ 699 MakeArray4(a2, a3, a4, a5); \ 700 _hr_ = HrValidateParameters(m, (void **)__rgArgs); if (HR_FAILED(_hr_)) return ((ULONG)_hr_); } 701 #define UlValidateParameters6( m, a1, a2, a3, a4, a5, a6 ) \ 702 { HRESULT _hr_; \ 703 MakeArray5(a2, a3, a4, a5, a6); \ 704 _hr_ = HrValidateParameters(m, (void **)__rgArgs); if (HR_FAILED(_hr_)) return ((ULONG)_hr_); } 705 #define UlValidateParameters7( m, a1, a2, a3, a4, a5, a6, a7 ) \ 706 { HRESULT _hr_; \ 707 MakeArray6(a2, a3, a4, a5, a6, a7); \ 708 _hr_ = HrValidateParameters(m, (void **)__rgArgs); if (HR_FAILED(_hr_)) return ((ULONG)_hr_); } 709 #define UlValidateParameters8( m, a1, a2, a3, a4, a5, a6, a7, a8 ) \ 710 { HRESULT _hr_; \ 711 MakeArray7(a2, a3, a4, a5, a6, a7, a8); \ 712 _hr_ = HrValidateParameters(m, (void **)__rgArgs); if (HR_FAILED(_hr_)) return ((ULONG)_hr_); } 713 #define UlValidateParameters9( m, a1, a2, a3, a4, a5, a6, a7, a8, a9 ) \ 714 { HRESULT _hr_; \ 715 MakeArray8(a2, a3, a4, a5, a6, a7, a8, a9); \ 716 _hr_ = HrValidateParameters(m, (void **)__rgArgs); if (HR_FAILED(_hr_)) return ((ULONG)_hr_); } 717 #define UlValidateParameters10( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 ) \ 718 { HRESULT _hr_; \ 719 MakeArray9(a2, a3, a4, a5, a6, a7, a8, a9, a10); \ 720 _hr_ = HrValidateParameters(m, (void **)__rgArgs); if (HR_FAILED(_hr_)) return ((ULONG)_hr_); } 721 #define UlValidateParameters11( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11 ) \ 722 { HRESULT _hr_; \ 723 MakeArray10(a2, a3, a4, a5, a6, a7, a8, a9, a10, a11); \ 724 _hr_ = HrValidateParameters(m, (void **)__rgArgs); if (HR_FAILED(_hr_)) return ((ULONG)_hr_); } 725 #define UlValidateParameters12( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12 ) \ 726 { HRESULT _hr_; \ 727 MakeArray11(a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12); \ 728 _hr_ = HrValidateParameters(m, (void **)__rgArgs); if (HR_FAILED(_hr_)) return ((ULONG)_hr_); } 729 #define UlValidateParameters13( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13 ) \ 730 { HRESULT _hr_; \ 731 MakeArray12(a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13); \ 732 _hr_ = HrValidateParameters(m, (void **)__rgArgs); if (HR_FAILED(_hr_)) return ((ULONG)_hr_); } 733 #define UlValidateParameters14( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14 ) \ 734 { HRESULT _hr_; \ 735 MakeArray13(a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14); \ 736 _hr_ = HrValidateParameters(m, (void **)__rgArgs); if (HR_FAILED(_hr_)) return ((ULONG)_hr_); } 737 #define UlValidateParameters15( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15 ) \ 738 { HRESULT _hr_; \ 739 MakeArray14(a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); \ 740 _hr_ = HrValidateParameters(m, (void **)__rgArgs); if (HR_FAILED(_hr_)) return ((ULONG)_hr_); } 741 #define UlValidateParameters16( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16 ) \ 742 { HRESULT _hr_; \ 743 MakeArray15(a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16); \ 744 _hr_ = HrValidateParameters(m, (void **)__rgArgs); if (HR_FAILED(_hr_)) return ((ULONG)_hr_); } 745 746 #ifdef DEBUG 747 #define CheckParameters1( m, a1 ) 748 #define CheckParameters2( m, a1, a2 ) \ 749 { \ 750 MakeArray1(a2); \ 751 AssertSz(HR_SUCCEEDED( HrValidateParameters(m, (void **)__rgArgs)), "Parameter validation failed for method called by MAPI!"); } 752 #define CheckParameters3( m, a1, a2, a3 ) \ 753 { \ 754 MakeArray2(a2, a3); \ 755 AssertSz(HR_SUCCEEDED( HrValidateParameters(m, (void **)__rgArgs)), "Parameter validation failed for method called by MAPI!"); } 756 #define CheckParameters4( m, a1, a2, a3, a4 ) \ 757 { \ 758 MakeArray3(a2, a3, a4); \ 759 AssertSz(HR_SUCCEEDED( HrValidateParameters(m, (void **)__rgArgs)), "Parameter validation failed for method called by MAPI!"); } 760 #define CheckParameters5( m, a1, a2, a3, a4, a5 ) \ 761 { \ 762 MakeArray4(a2, a3, a4, a5); \ 763 AssertSz(HR_SUCCEEDED( HrValidateParameters(m, (void **)__rgArgs)), "Parameter validation failed for method called by MAPI!"); } 764 #define CheckParameters6( m, a1, a2, a3, a4, a5, a6 ) \ 765 { \ 766 MakeArray5(a2, a3, a4, a5, a6); \ 767 AssertSz(HR_SUCCEEDED( HrValidateParameters(m, (void **)__rgArgs)), "Parameter validation failed for method called by MAPI!"); } 768 #define CheckParameters7( m, a1, a2, a3, a4, a5, a6, a7 ) \ 769 { \ 770 MakeArray6(a2, a3, a4, a5, a6, a7); \ 771 AssertSz(HR_SUCCEEDED( HrValidateParameters(m, (void **)__rgArgs)), "Parameter validation failed for method called by MAPI!"); } 772 #define CheckParameters8( m, a1, a2, a3, a4, a5, a6, a7, a8 ) \ 773 { \ 774 MakeArray7(a2, a3, a4, a5, a6, a7, a8); \ 775 AssertSz(HR_SUCCEEDED( HrValidateParameters(m, (void **)__rgArgs)), "Parameter validation failed for method called by MAPI!"); } 776 #define CheckParameters9( m, a1, a2, a3, a4, a5, a6, a7, a8, a9 ) \ 777 { \ 778 MakeArray8(a2, a3, a4, a5, a6, a7, a8, a9); \ 779 AssertSz(HR_SUCCEEDED( HrValidateParameters(m, (void **)__rgArgs)), "Parameter validation failed for method called by MAPI!"); } 780 #define CheckParameters10( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 ) \ 781 { \ 782 MakeArray9(a2, a3, a4, a5, a6, a7, a8, a9, a10); \ 783 AssertSz(HR_SUCCEEDED( HrValidateParameters(m, (void **)__rgArgs)), "Parameter validation failed for method called by MAPI!"); } 784 #define CheckParameters11( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11 ) \ 785 { \ 786 MakeArray10(a2, a3, a4, a5, a6, a7, a8, a9, a10, a11); \ 787 AssertSz(HR_SUCCEEDED( HrValidateParameters(m, (void **)__rgArgs)), "Parameter validation failed for method called by MAPI!"); } 788 #define CheckParameters12( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12 ) \ 789 { \ 790 MakeArray11(a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12); \ 791 AssertSz(HR_SUCCEEDED( HrValidateParameters(m, (void **)__rgArgs)), "Parameter validation failed for method called by MAPI!"); } 792 #define CheckParameters13( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13 ) \ 793 { \ 794 MakeArray12(a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13); \ 795 AssertSz(HR_SUCCEEDED( HrValidateParameters(m, (void **)__rgArgs)), "Parameter validation failed for method called by MAPI!"); } 796 #define CheckParameters14( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14 ) \ 797 { \ 798 MakeArray13(a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14); \ 799 AssertSz(HR_SUCCEEDED( HrValidateParameters(m, (void **)__rgArgs)), "Parameter validation failed for method called by MAPI!"); } 800 #define CheckParameters15( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15 ) \ 801 { \ 802 MakeArray14(a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15); \ 803 AssertSz(HR_SUCCEEDED( HrValidateParameters(m, (void **)__rgArgs)), "Parameter validation failed for method called by MAPI!"); } 804 #define CheckParameters16( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16 ) \ 805 { \ 806 MakeArray15(a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16); \ 807 AssertSz(HR_SUCCEEDED( HrValidateParameters(m, (void **)__rgArgs)), "Parameter validation failed for method called by MAPI!"); } 808 #else /* DEBUG */ 809 #define CheckParameters1( m, a1 ) 810 #define CheckParameters2( m, a1, a2 ) 811 #define CheckParameters3( m, a1, a2, a3 ) 812 #define CheckParameters4( m, a1, a2, a3, a4 ) 813 #define CheckParameters5( m, a1, a2, a3, a4, a5 ) 814 #define CheckParameters6( m, a1, a2, a3, a4, a5, a6 ) 815 #define CheckParameters7( m, a1, a2, a3, a4, a5, a6, a7 ) 816 #define CheckParameters8( m, a1, a2, a3, a4, a5, a6, a7, a8 ) 817 #define CheckParameters9( m, a1, a2, a3, a4, a5, a6, a7, a8, a9 ) 818 #define CheckParameters10( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 ) 819 #define CheckParameters11( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11 ) 820 #define CheckParameters12( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12 ) 821 #define CheckParameters13( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13 ) 822 #define CheckParameters14( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14 ) 823 #define CheckParameters15( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15 ) 824 #define CheckParameters16( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16 ) 825 #endif /* DEBUG */ 826 #else /* !_AMD64_ && !_X86_ */ 827 #define ValidateParms(x) { HRESULT _hr_ = HrValidateParametersV x; if (HR_FAILED(_hr_)) return (_hr_); } 828 #define UlValidateParms(x) { HRESULT _hr_ = HrValidateParametersV x; if (HR_FAILED(_hr_)) return (ULONG)(_hr_); } 829 #define CheckParms(x) AssertSz(HR_SUCCEEDED( HrValidateParametersV x ), "Parameter validation failed for method called by MAPI!") 830 831 #define ValidateParameters1( m, a1 ) \ 832 ValidateParms( ( m, a1 ) ) 833 #define ValidateParameters2( m, a1, a2 ) \ 834 ValidateParms( ( m, a1, a2 )) 835 #define ValidateParameters3( m, a1, a2, a3 ) \ 836 ValidateParms( ( m, a1, a2, a3 )) 837 #define ValidateParameters4( m, a1, a2, a3, a4 ) \ 838 ValidateParms( ( m, a1, a2, a3, a4 )) 839 #define ValidateParameters5( m, a1, a2, a3, a4, a5 ) \ 840 ValidateParms( ( m, a1, a2, a3, a4, a5 )) 841 #define ValidateParameters6( m, a1, a2, a3, a4, a5, a6 ) \ 842 ValidateParms( ( m, a1, a2, a3, a4, a5, a6 )) 843 #define ValidateParameters7( m, a1, a2, a3, a4, a5, a6, a7 ) \ 844 ValidateParms( ( m, a1, a2, a3, a4, a5, a6, a7 )) 845 #define ValidateParameters8( m, a1, a2, a3, a4, a5, a6, a7, a8 ) \ 846 ValidateParms( ( m, a1, a2, a3, a4, a5, a6, a7, a8 )) 847 #define ValidateParameters9( m, a1, a2, a3, a4, a5, a6, a7, a8, a9 ) \ 848 ValidateParms( ( m, a1, a2, a3, a4, a5, a6, a7, a8, a9 )) 849 #define ValidateParameters10( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 ) \ 850 ValidateParms( ( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 )) 851 #define ValidateParameters11( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11 ) \ 852 ValidateParms( ( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11 )) 853 #define ValidateParameters12( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12 ) \ 854 ValidateParms( ( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12 )) 855 #define ValidateParameters13( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13 ) \ 856 ValidateParms( ( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13 )) 857 #define ValidateParameters14( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14 ) \ 858 ValidateParms( ( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14 )) 859 #define ValidateParameters15( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15 ) \ 860 ValidateParms( ( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15 )) 861 #define ValidateParameters16( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16 ) \ 862 ValidateParms( ( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16 )) 863 864 #define UlValidateParameters1( m, a1 ) \ 865 UlValidateParms( ( m, a1 ) ) 866 #define UlValidateParameters2( m, a1, a2 ) \ 867 UlValidateParms( ( m, a1, a2 )) 868 #define UlValidateParameters3( m, a1, a2, a3 ) \ 869 UlValidateParms( ( m, a1, a2, a3 )) 870 #define UlValidateParameters4( m, a1, a2, a3, a4 ) \ 871 UlValidateParms( ( m, a1, a2, a3, a4 )) 872 #define UlValidateParameters5( m, a1, a2, a3, a4, a5 ) \ 873 UlValidateParms( ( m, a1, a2, a3, a4, a5 )) 874 #define UlValidateParameters6( m, a1, a2, a3, a4, a5, a6 ) \ 875 UlValidateParms( ( m, a1, a2, a3, a4, a5, a6 )) 876 #define UlValidateParameters7( m, a1, a2, a3, a4, a5, a6, a7 ) \ 877 UlValidateParms( ( m, a1, a2, a3, a4, a5, a6, a7 )) 878 #define UlValidateParameters8( m, a1, a2, a3, a4, a5, a6, a7, a8 ) \ 879 UlValidateParms( ( m, a1, a2, a3, a4, a5, a6, a7, a8 )) 880 #define UlValidateParameters9( m, a1, a2, a3, a4, a5, a6, a7, a8, a9 ) \ 881 UlValidateParms( ( m, a1, a2, a3, a4, a5, a6, a7, a8, a9 )) 882 #define UlValidateParameters10( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 ) \ 883 UlValidateParms( ( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 )) 884 #define UlValidateParameters11( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11 ) \ 885 UlValidateParms( ( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11 )) 886 #define UlValidateParameters12( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12 ) \ 887 UlValidateParms( ( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12 )) 888 #define UlValidateParameters13( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13 ) \ 889 UlValidateParms( ( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13 )) 890 #define UlValidateParameters14( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14 ) \ 891 UlValidateParms( ( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14 )) 892 #define UlValidateParameters15( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15 ) \ 893 UlValidateParms( ( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15 )) 894 #define UlValidateParameters16( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16 ) \ 895 UlValidateParms( ( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16 )) 896 897 #define CheckParameters1( m, a1 ) \ 898 CheckParms( ( m, a1 ) ) 899 #define CheckParameters2( m, a1, a2 ) \ 900 CheckParms( ( m, a1, a2 )) 901 #define CheckParameters3( m, a1, a2, a3 ) \ 902 CheckParms( ( m, a1, a2, a3 )) 903 #define CheckParameters4( m, a1, a2, a3, a4 ) \ 904 CheckParms( ( m, a1, a2, a3, a4 )) 905 #define CheckParameters5( m, a1, a2, a3, a4, a5 ) \ 906 CheckParms( ( m, a1, a2, a3, a4, a5 )) 907 #define CheckParameters6( m, a1, a2, a3, a4, a5, a6 ) \ 908 CheckParms( ( m, a1, a2, a3, a4, a5, a6 )) 909 #define CheckParameters7( m, a1, a2, a3, a4, a5, a6, a7 ) \ 910 CheckParms( ( m, a1, a2, a3, a4, a5, a6, a7 )) 911 #define CheckParameters8( m, a1, a2, a3, a4, a5, a6, a7, a8 ) \ 912 CheckParms( ( m, a1, a2, a3, a4, a5, a6, a7, a8 )) 913 #define CheckParameters9( m, a1, a2, a3, a4, a5, a6, a7, a8, a9 ) \ 914 CheckParms( ( m, a1, a2, a3, a4, a5, a6, a7, a8, a9 )) 915 #define CheckParameters10( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 ) \ 916 CheckParms( ( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 )) 917 #define CheckParameters11( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11 ) \ 918 CheckParms( ( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11 )) 919 #define CheckParameters12( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12 ) \ 920 CheckParms( ( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12 )) 921 #define CheckParameters13( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13 ) \ 922 CheckParms( ( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13 )) 923 #define CheckParameters14( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14 ) \ 924 CheckParms( ( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14 )) 925 #define CheckParameters15( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15 ) \ 926 CheckParms( ( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15 )) 927 #define CheckParameters16( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16 ) \ 928 CheckParms( ( m, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16 )) 929 930 #endif /* _AMD64_ || _X86_ */ 931 932 933 /* 934 * M A P I P A R A M E T E R V A L I D A T I O N M A C R O S 935 */ 936 937 938 /* IUnknown */ 939 940 #define Validate_IUnknown_QueryInterface( a1, a2, a3 ) \ 941 ValidateParameters3( IUnknown_QueryInterface, a1, a2, a3 ) 942 #define UlValidate_IUnknown_QueryInterface( a1, a2, a3 ) \ 943 UlValidateParameters3( IUnknown_QueryInterface, a1, a2, a3 ) 944 #define CheckParameters_IUnknown_QueryInterface( a1, a2, a3 ) \ 945 CheckParameters3( IUnknown_QueryInterface, a1, a2, a3 ) 946 947 #define Validate_IUnknown_AddRef( a1 ) \ 948 ValidateParameters1( IUnknown_AddRef, a1 ) 949 #define UlValidate_IUnknown_AddRef( a1 ) \ 950 UlValidateParameters1( IUnknown_AddRef, a1 ) 951 #define CheckParameters_IUnknown_AddRef( a1 ) \ 952 CheckParameters1( IUnknown_AddRef, a1 ) 953 954 #define Validate_IUnknown_Release( a1 ) \ 955 ValidateParameters1( IUnknown_Release, a1 ) 956 #define UlValidate_IUnknown_Release( a1 ) \ 957 UlValidateParameters1( IUnknown_Release, a1 ) 958 #define CheckParameters_IUnknown_Release( a1 ) \ 959 CheckParameters1( IUnknown_Release, a1 ) 960 961 962 /* IMAPIProp */ 963 964 #define Validate_IMAPIProp_GetLastError( a1, a2, a3, a4 ) \ 965 ValidateParameters4( IMAPIProp_GetLastError, a1, a2, a3, a4 ) 966 #define UlValidate_IMAPIProp_GetLastError( a1, a2, a3, a4 ) \ 967 UlValidateParameters4( IMAPIProp_GetLastError, a1, a2, a3, a4 ) 968 #define CheckParameters_IMAPIProp_GetLastError( a1, a2, a3, a4 ) \ 969 CheckParameters4( IMAPIProp_GetLastError, a1, a2, a3, a4 ) 970 971 #define Validate_IMAPIProp_SaveChanges( a1, a2 ) \ 972 ValidateParameters2( IMAPIProp_SaveChanges, a1, a2 ) 973 #define UlValidate_IMAPIProp_SaveChanges( a1, a2 ) \ 974 UlValidateParameters2( IMAPIProp_SaveChanges, a1, a2 ) 975 #define CheckParameters_IMAPIProp_SaveChanges( a1, a2 ) \ 976 CheckParameters2( IMAPIProp_SaveChanges, a1, a2 ) 977 978 #define Validate_IMAPIProp_GetProps( a1, a2, a3, a4, a5 ) \ 979 ValidateParameters5( IMAPIProp_GetProps, a1, a2, a3, a4, a5 ) 980 #define UlValidate_IMAPIProp_GetProps( a1, a2, a3, a4, a5 ) \ 981 UlValidateParameters5( IMAPIProp_GetProps, a1, a2, a3, a4, a5 ) 982 #define CheckParameters_IMAPIProp_GetProps( a1, a2, a3, a4, a5 ) \ 983 CheckParameters5( IMAPIProp_GetProps, a1, a2, a3, a4, a5 ) 984 985 #define Validate_IMAPIProp_GetPropList( a1, a2, a3 ) \ 986 ValidateParameters3( IMAPIProp_GetPropList, a1, a2, a3 ) 987 #define UlValidate_IMAPIProp_GetPropList( a1, a2, a3 ) \ 988 UlValidateParameters3( IMAPIProp_GetPropList, a1, a2, a3 ) 989 #define CheckParameters_IMAPIProp_GetPropList( a1, a2, a3 ) \ 990 CheckParameters3( IMAPIProp_GetPropList, a1, a2, a3 ) 991 992 #define Validate_IMAPIProp_OpenProperty( a1, a2, a3, a4, a5, a6 ) \ 993 ValidateParameters6( IMAPIProp_OpenProperty, a1, a2, a3, a4, a5, a6 ) 994 #define UlValidate_IMAPIProp_OpenProperty( a1, a2, a3, a4, a5, a6 ) \ 995 UlValidateParameters6( IMAPIProp_OpenProperty, a1, a2, a3, a4, a5, a6 ) 996 #define CheckParameters_IMAPIProp_OpenProperty( a1, a2, a3, a4, a5, a6 ) \ 997 CheckParameters6( IMAPIProp_OpenProperty, a1, a2, a3, a4, a5, a6 ) 998 999 #define Validate_IMAPIProp_SetProps( a1, a2, a3, a4 ) \ 1000 ValidateParameters4( IMAPIProp_SetProps, a1, a2, a3, a4 ) 1001 #define UlValidate_IMAPIProp_SetProps( a1, a2, a3, a4 ) \ 1002 UlValidateParameters4( IMAPIProp_SetProps, a1, a2, a3, a4 ) 1003 #define CheckParameters_IMAPIProp_SetProps( a1, a2, a3, a4 ) \ 1004 CheckParameters4( IMAPIProp_SetProps, a1, a2, a3, a4 ) 1005 1006 #define Validate_IMAPIProp_DeleteProps( a1, a2, a3 ) \ 1007 ValidateParameters3( IMAPIProp_DeleteProps, a1, a2, a3 ) 1008 #define UlValidate_IMAPIProp_DeleteProps( a1, a2, a3 ) \ 1009 UlValidateParameters3( IMAPIProp_DeleteProps, a1, a2, a3 ) 1010 #define CheckParameters_IMAPIProp_DeleteProps( a1, a2, a3 ) \ 1011 CheckParameters3( IMAPIProp_DeleteProps, a1, a2, a3 ) 1012 1013 #define Validate_IMAPIProp_CopyTo( a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 ) \ 1014 ValidateParameters10( IMAPIProp_CopyTo, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 ) 1015 #define UlValidate_IMAPIProp_CopyTo( a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 ) \ 1016 UlValidateParameters10( IMAPIProp_CopyTo, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 ) 1017 #define CheckParameters_IMAPIProp_CopyTo( a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 ) \ 1018 CheckParameters10( IMAPIProp_CopyTo, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 ) 1019 1020 #define Validate_IMAPIProp_CopyProps( a1, a2, a3, a4, a5, a6, a7, a8 ) \ 1021 ValidateParameters8( IMAPIProp_CopyProps, a1, a2, a3, a4, a5, a6, a7, a8 ) 1022 #define UlValidate_IMAPIProp_CopyProps( a1, a2, a3, a4, a5, a6, a7, a8 ) \ 1023 UlValidateParameters8( IMAPIProp_CopyProps, a1, a2, a3, a4, a5, a6, a7, a8 ) 1024 #define CheckParameters_IMAPIProp_CopyProps( a1, a2, a3, a4, a5, a6, a7, a8 ) \ 1025 CheckParameters8( IMAPIProp_CopyProps, a1, a2, a3, a4, a5, a6, a7, a8 ) 1026 1027 #define Validate_IMAPIProp_GetNamesFromIDs( a1, a2, a3, a4, a5, a6 ) \ 1028 ValidateParameters6( IMAPIProp_GetNamesFromIDs, a1, a2, a3, a4, a5, a6 ) 1029 #define UlValidate_IMAPIProp_GetNamesFromIDs( a1, a2, a3, a4, a5, a6 ) \ 1030 UlValidateParameters6( IMAPIProp_GetNamesFromIDs, a1, a2, a3, a4, a5, a6 ) 1031 #define CheckParameters_IMAPIProp_GetNamesFromIDs( a1, a2, a3, a4, a5, a6 ) \ 1032 CheckParameters6( IMAPIProp_GetNamesFromIDs, a1, a2, a3, a4, a5, a6 ) 1033 1034 #define Validate_IMAPIProp_GetIDsFromNames( a1, a2, a3, a4, a5 ) \ 1035 ValidateParameters5( IMAPIProp_GetIDsFromNames, a1, a2, a3, a4, a5 ) 1036 #define UlValidate_IMAPIProp_GetIDsFromNames( a1, a2, a3, a4, a5 ) \ 1037 UlValidateParameters5( IMAPIProp_GetIDsFromNames, a1, a2, a3, a4, a5 ) 1038 #define CheckParameters_IMAPIProp_GetIDsFromNames( a1, a2, a3, a4, a5 ) \ 1039 CheckParameters5( IMAPIProp_GetIDsFromNames, a1, a2, a3, a4, a5 ) 1040 1041 1042 /* IMAPITable */ 1043 1044 #define Validate_IMAPITable_GetLastError( a1, a2, a3, a4 ) \ 1045 ValidateParameters4( IMAPITable_GetLastError, a1, a2, a3, a4 ) 1046 #define UlValidate_IMAPITable_GetLastError( a1, a2, a3, a4 ) \ 1047 UlValidateParameters4( IMAPITable_GetLastError, a1, a2, a3, a4 ) 1048 #define CheckParameters_IMAPITable_GetLastError( a1, a2, a3, a4 ) \ 1049 CheckParameters4( IMAPITable_GetLastError, a1, a2, a3, a4 ) 1050 1051 #define Validate_IMAPITable_Advise( a1, a2, a3, a4 ) \ 1052 ValidateParameters4( IMAPITable_Advise, a1, a2, a3, a4 ) 1053 #define UlValidate_IMAPITable_Advise( a1, a2, a3, a4 ) \ 1054 UlValidateParameters4( IMAPITable_Advise, a1, a2, a3, a4 ) 1055 #define CheckParameters_IMAPITable_Advise( a1, a2, a3, a4 ) \ 1056 CheckParameters4( IMAPITable_Advise, a1, a2, a3, a4 ) 1057 1058 #define Validate_IMAPITable_Unadvise( a1, a2 ) \ 1059 ValidateParameters2( IMAPITable_Unadvise, a1, a2 ) 1060 #define UlValidate_IMAPITable_Unadvise( a1, a2 ) \ 1061 UlValidateParameters2( IMAPITable_Unadvise, a1, a2 ) 1062 #define CheckParameters_IMAPITable_Unadvise( a1, a2 ) \ 1063 CheckParameters2( IMAPITable_Unadvise, a1, a2 ) 1064 1065 #define Validate_IMAPITable_GetStatus( a1, a2, a3 ) \ 1066 ValidateParameters3( IMAPITable_GetStatus, a1, a2, a3 ) 1067 #define UlValidate_IMAPITable_GetStatus( a1, a2, a3 ) \ 1068 UlValidateParameters3( IMAPITable_GetStatus, a1, a2, a3 ) 1069 #define CheckParameters_IMAPITable_GetStatus( a1, a2, a3 ) \ 1070 CheckParameters3( IMAPITable_GetStatus, a1, a2, a3 ) 1071 1072 #define Validate_IMAPITable_SetColumns( a1, a2, a3 ) \ 1073 ValidateParameters3( IMAPITable_SetColumns, a1, a2, a3 ) 1074 #define UlValidate_IMAPITable_SetColumns( a1, a2, a3 ) \ 1075 UlValidateParameters3( IMAPITable_SetColumns, a1, a2, a3 ) 1076 #define CheckParameters_IMAPITable_SetColumns( a1, a2, a3 ) \ 1077 CheckParameters3( IMAPITable_SetColumns, a1, a2, a3 ) 1078 1079 #define Validate_IMAPITable_QueryColumns( a1, a2, a3 ) \ 1080 ValidateParameters3( IMAPITable_QueryColumns, a1, a2, a3 ) 1081 #define UlValidate_IMAPITable_QueryColumns( a1, a2, a3 ) \ 1082 UlValidateParameters3( IMAPITable_QueryColumns, a1, a2, a3 ) 1083 #define CheckParameters_IMAPITable_QueryColumns( a1, a2, a3 ) \ 1084 CheckParameters3( IMAPITable_QueryColumns, a1, a2, a3 ) 1085 1086 #define Validate_IMAPITable_GetRowCount( a1, a2, a3 ) \ 1087 ValidateParameters3( IMAPITable_GetRowCount, a1, a2, a3 ) 1088 #define UlValidate_IMAPITable_GetRowCount( a1, a2, a3 ) \ 1089 UlValidateParameters3( IMAPITable_GetRowCount, a1, a2, a3 ) 1090 #define CheckParameters_IMAPITable_GetRowCount( a1, a2, a3 ) \ 1091 CheckParameters3( IMAPITable_GetRowCount, a1, a2, a3 ) 1092 1093 #define Validate_IMAPITable_SeekRow( a1, a2, a3, a4 ) \ 1094 ValidateParameters4( IMAPITable_SeekRow, a1, a2, a3, a4 ) 1095 #define UlValidate_IMAPITable_SeekRow( a1, a2, a3, a4 ) \ 1096 UlValidateParameters4( IMAPITable_SeekRow, a1, a2, a3, a4 ) 1097 #define CheckParameters_IMAPITable_SeekRow( a1, a2, a3, a4 ) \ 1098 CheckParameters4( IMAPITable_SeekRow, a1, a2, a3, a4 ) 1099 1100 #define Validate_IMAPITable_SeekRowApprox( a1, a2, a3 ) \ 1101 ValidateParameters3( IMAPITable_SeekRowApprox, a1, a2, a3 ) 1102 #define UlValidate_IMAPITable_SeekRowApprox( a1, a2, a3 ) \ 1103 UlValidateParameters3( IMAPITable_SeekRowApprox, a1, a2, a3 ) 1104 #define CheckParameters_IMAPITable_SeekRowApprox( a1, a2, a3 ) \ 1105 CheckParameters3( IMAPITable_SeekRowApprox, a1, a2, a3 ) 1106 1107 #define Validate_IMAPITable_QueryPosition( a1, a2, a3, a4 ) \ 1108 ValidateParameters4( IMAPITable_QueryPosition, a1, a2, a3, a4 ) 1109 #define UlValidate_IMAPITable_QueryPosition( a1, a2, a3, a4 ) \ 1110 UlValidateParameters4( IMAPITable_QueryPosition, a1, a2, a3, a4 ) 1111 #define CheckParameters_IMAPITable_QueryPosition( a1, a2, a3, a4 ) \ 1112 CheckParameters4( IMAPITable_QueryPosition, a1, a2, a3, a4 ) 1113 1114 #define Validate_IMAPITable_FindRow( a1, a2, a3, a4 ) \ 1115 ValidateParameters4( IMAPITable_FindRow, a1, a2, a3, a4 ) 1116 #define UlValidate_IMAPITable_FindRow( a1, a2, a3, a4 ) \ 1117 UlValidateParameters4( IMAPITable_FindRow, a1, a2, a3, a4 ) 1118 #define CheckParameters_IMAPITable_FindRow( a1, a2, a3, a4 ) \ 1119 CheckParameters4( IMAPITable_FindRow, a1, a2, a3, a4 ) 1120 1121 #define Validate_IMAPITable_Restrict( a1, a2, a3 ) \ 1122 ValidateParameters3( IMAPITable_Restrict, a1, a2, a3 ) 1123 #define UlValidate_IMAPITable_Restrict( a1, a2, a3 ) \ 1124 UlValidateParameters3( IMAPITable_Restrict, a1, a2, a3 ) 1125 #define CheckParameters_IMAPITable_Restrict( a1, a2, a3 ) \ 1126 CheckParameters3( IMAPITable_Restrict, a1, a2, a3 ) 1127 1128 #define Validate_IMAPITable_CreateBookmark( a1, a2 ) \ 1129 ValidateParameters2( IMAPITable_CreateBookmark, a1, a2 ) 1130 #define UlValidate_IMAPITable_CreateBookmark( a1, a2 ) \ 1131 UlValidateParameters2( IMAPITable_CreateBookmark, a1, a2 ) 1132 #define CheckParameters_IMAPITable_CreateBookmark( a1, a2 ) \ 1133 CheckParameters2( IMAPITable_CreateBookmark, a1, a2 ) 1134 1135 #define Validate_IMAPITable_FreeBookmark( a1, a2 ) \ 1136 ValidateParameters2( IMAPITable_FreeBookmark, a1, a2 ) 1137 #define UlValidate_IMAPITable_FreeBookmark( a1, a2 ) \ 1138 UlValidateParameters2( IMAPITable_FreeBookmark, a1, a2 ) 1139 #define CheckParameters_IMAPITable_FreeBookmark( a1, a2 ) \ 1140 CheckParameters2( IMAPITable_FreeBookmark, a1, a2 ) 1141 1142 #define Validate_IMAPITable_SortTable( a1, a2, a3 ) \ 1143 ValidateParameters3( IMAPITable_SortTable, a1, a2, a3 ) 1144 #define UlValidate_IMAPITable_SortTable( a1, a2, a3 ) \ 1145 UlValidateParameters3( IMAPITable_SortTable, a1, a2, a3 ) 1146 #define CheckParameters_IMAPITable_SortTable( a1, a2, a3 ) \ 1147 CheckParameters3( IMAPITable_SortTable, a1, a2, a3 ) 1148 1149 #define Validate_IMAPITable_QuerySortOrder( a1, a2 ) \ 1150 ValidateParameters2( IMAPITable_QuerySortOrder, a1, a2 ) 1151 #define UlValidate_IMAPITable_QuerySortOrder( a1, a2 ) \ 1152 UlValidateParameters2( IMAPITable_QuerySortOrder, a1, a2 ) 1153 #define CheckParameters_IMAPITable_QuerySortOrder( a1, a2 ) \ 1154 CheckParameters2( IMAPITable_QuerySortOrder, a1, a2 ) 1155 1156 #define Validate_IMAPITable_QueryRows( a1, a2, a3, a4 ) \ 1157 ValidateParameters4( IMAPITable_QueryRows, a1, a2, a3, a4 ) 1158 #define UlValidate_IMAPITable_QueryRows( a1, a2, a3, a4 ) \ 1159 UlValidateParameters4( IMAPITable_QueryRows, a1, a2, a3, a4 ) 1160 #define CheckParameters_IMAPITable_QueryRows( a1, a2, a3, a4 ) \ 1161 CheckParameters4( IMAPITable_QueryRows, a1, a2, a3, a4 ) 1162 1163 #define Validate_IMAPITable_Abort( a1 ) \ 1164 ValidateParameters1( IMAPITable_Abort, a1 ) 1165 #define UlValidate_IMAPITable_Abort( a1 ) \ 1166 UlValidateParameters1( IMAPITable_Abort, a1 ) 1167 #define CheckParameters_IMAPITable_Abort( a1 ) \ 1168 CheckParameters1( IMAPITable_Abort, a1 ) 1169 1170 #define Validate_IMAPITable_ExpandRow( a1, a2, a3, a4, a5, a6, a7 ) \ 1171 ValidateParameters7( IMAPITable_ExpandRow, a1, a2, a3, a4, a5, a6, a7 ) 1172 #define UlValidate_IMAPITable_ExpandRow( a1, a2, a3, a4, a5, a6, a7 ) \ 1173 UlValidateParameters7( IMAPITable_ExpandRow, a1, a2, a3, a4, a5, a6, a7 ) 1174 #define CheckParameters_IMAPITable_ExpandRow( a1, a2, a3, a4, a5, a6, a7 ) \ 1175 CheckParameters7( IMAPITable_ExpandRow, a1, a2, a3, a4, a5, a6, a7 ) 1176 1177 #define Validate_IMAPITable_CollapseRow( a1, a2, a3, a4, a5 ) \ 1178 ValidateParameters5( IMAPITable_CollapseRow, a1, a2, a3, a4, a5 ) 1179 #define UlValidate_IMAPITable_CollapseRow( a1, a2, a3, a4, a5 ) \ 1180 UlValidateParameters5( IMAPITable_CollapseRow, a1, a2, a3, a4, a5 ) 1181 #define CheckParameters_IMAPITable_CollapseRow( a1, a2, a3, a4, a5 ) \ 1182 CheckParameters5( IMAPITable_CollapseRow, a1, a2, a3, a4, a5 ) 1183 1184 #define Validate_IMAPITable_WaitForCompletion( a1, a2, a3, a4 ) \ 1185 ValidateParameters4( IMAPITable_WaitForCompletion, a1, a2, a3, a4 ) 1186 #define UlValidate_IMAPITable_WaitForCompletion( a1, a2, a3, a4 ) \ 1187 UlValidateParameters4( IMAPITable_WaitForCompletion, a1, a2, a3, a4 ) 1188 #define CheckParameters_IMAPITable_WaitForCompletion( a1, a2, a3, a4 ) \ 1189 CheckParameters4( IMAPITable_WaitForCompletion, a1, a2, a3, a4 ) 1190 1191 #define Validate_IMAPITable_GetCollapseState( a1, a2, a3, a4, a5, a6 ) \ 1192 ValidateParameters6( IMAPITable_GetCollapseState, a1, a2, a3, a4, a5, a6 ) 1193 #define UlValidate_IMAPITable_GetCollapseState( a1, a2, a3, a4, a5, a6 ) \ 1194 UlValidateParameters6( IMAPITable_GetCollapseState, a1, a2, a3, a4, a5, a6 ) 1195 #define CheckParameters_IMAPITable_GetCollapseState( a1, a2, a3, a4, a5, a6 ) \ 1196 CheckParameters6( IMAPITable_GetCollapseState, a1, a2, a3, a4, a5, a6 ) 1197 1198 #define Validate_IMAPITable_SetCollapseState( a1, a2, a3, a4, a5 ) \ 1199 ValidateParameters5( IMAPITable_SetCollapseState, a1, a2, a3, a4, a5 ) 1200 #define UlValidate_IMAPITable_SetCollapseState( a1, a2, a3, a4, a5 ) \ 1201 UlValidateParameters5( IMAPITable_SetCollapseState, a1, a2, a3, a4, a5 ) 1202 #define CheckParameters_IMAPITable_SetCollapseState( a1, a2, a3, a4, a5 ) \ 1203 CheckParameters5( IMAPITable_SetCollapseState, a1, a2, a3, a4, a5 ) 1204 1205 1206 /* IMAPIContainer */ 1207 1208 #define Validate_IMAPIContainer_GetContentsTable( a1, a2, a3 ) \ 1209 ValidateParameters3( IMAPIContainer_GetContentsTable, a1, a2, a3 ) 1210 #define UlValidate_IMAPIContainer_GetContentsTable( a1, a2, a3 ) \ 1211 UlValidateParameters3( IMAPIContainer_GetContentsTable, a1, a2, a3 ) 1212 #define CheckParameters_IMAPIContainer_GetContentsTable( a1, a2, a3 ) \ 1213 CheckParameters3( IMAPIContainer_GetContentsTable, a1, a2, a3 ) 1214 1215 #define Validate_IMAPIContainer_GetHierarchyTable( a1, a2, a3 ) \ 1216 ValidateParameters3( IMAPIContainer_GetHierarchyTable, a1, a2, a3 ) 1217 #define UlValidate_IMAPIContainer_GetHierarchyTable( a1, a2, a3 ) \ 1218 UlValidateParameters3( IMAPIContainer_GetHierarchyTable, a1, a2, a3 ) 1219 #define CheckParameters_IMAPIContainer_GetHierarchyTable( a1, a2, a3 ) \ 1220 CheckParameters3( IMAPIContainer_GetHierarchyTable, a1, a2, a3 ) 1221 1222 #define Validate_IMAPIContainer_OpenEntry( a1, a2, a3, a4, a5, a6, a7 ) \ 1223 ValidateParameters7( IMAPIContainer_OpenEntry, a1, a2, a3, a4, a5, a6, a7 ) 1224 #define UlValidate_IMAPIContainer_OpenEntry( a1, a2, a3, a4, a5, a6, a7 ) \ 1225 UlValidateParameters7( IMAPIContainer_OpenEntry, a1, a2, a3, a4, a5, a6, a7 ) 1226 #define CheckParameters_IMAPIContainer_OpenEntry( a1, a2, a3, a4, a5, a6, a7 ) \ 1227 CheckParameters7( IMAPIContainer_OpenEntry, a1, a2, a3, a4, a5, a6, a7 ) 1228 1229 #define Validate_IMAPIContainer_SetSearchCriteria( a1, a2, a3, a4 ) \ 1230 ValidateParameters4( IMAPIContainer_SetSearchCriteria, a1, a2, a3, a4 ) 1231 #define UlValidate_IMAPIContainer_SetSearchCriteria( a1, a2, a3, a4 ) \ 1232 UlValidateParameters4( IMAPIContainer_SetSearchCriteria, a1, a2, a3, a4 ) 1233 #define CheckParameters_IMAPIContainer_SetSearchCriteria( a1, a2, a3, a4 ) \ 1234 CheckParameters4( IMAPIContainer_SetSearchCriteria, a1, a2, a3, a4 ) 1235 1236 #define Validate_IMAPIContainer_GetSearchCriteria( a1, a2, a3, a4, a5 ) \ 1237 ValidateParameters5( IMAPIContainer_GetSearchCriteria, a1, a2, a3, a4, a5 ) 1238 #define UlValidate_IMAPIContainer_GetSearchCriteria( a1, a2, a3, a4, a5 ) \ 1239 UlValidateParameters5( IMAPIContainer_GetSearchCriteria, a1, a2, a3, a4, a5 ) 1240 #define CheckParameters_IMAPIContainer_GetSearchCriteria( a1, a2, a3, a4, a5 ) \ 1241 CheckParameters5( IMAPIContainer_GetSearchCriteria, a1, a2, a3, a4, a5 ) 1242 1243 1244 /* IABContainer */ 1245 1246 #define Validate_IABContainer_CreateEntry( a1, a2, a3, a4, a5 ) \ 1247 ValidateParameters5( IABContainer_CreateEntry, a1, a2, a3, a4, a5 ) 1248 #define UlValidate_IABContainer_CreateEntry( a1, a2, a3, a4, a5 ) \ 1249 UlValidateParameters5( IABContainer_CreateEntry, a1, a2, a3, a4, a5 ) 1250 #define CheckParameters_IABContainer_CreateEntry( a1, a2, a3, a4, a5 ) \ 1251 CheckParameters5( IABContainer_CreateEntry, a1, a2, a3, a4, a5 ) 1252 1253 #define Validate_IABContainer_CopyEntries( a1, a2, a3, a4, a5 ) \ 1254 ValidateParameters5( IABContainer_CopyEntries, a1, a2, a3, a4, a5 ) 1255 #define UlValidate_IABContainer_CopyEntries( a1, a2, a3, a4, a5 ) \ 1256 UlValidateParameters5( IABContainer_CopyEntries, a1, a2, a3, a4, a5 ) 1257 #define CheckParameters_IABContainer_CopyEntries( a1, a2, a3, a4, a5 ) \ 1258 CheckParameters5( IABContainer_CopyEntries, a1, a2, a3, a4, a5 ) 1259 1260 #define Validate_IABContainer_DeleteEntries( a1, a2, a3 ) \ 1261 ValidateParameters3( IABContainer_DeleteEntries, a1, a2, a3 ) 1262 #define UlValidate_IABContainer_DeleteEntries( a1, a2, a3 ) \ 1263 UlValidateParameters3( IABContainer_DeleteEntries, a1, a2, a3 ) 1264 #define CheckParameters_IABContainer_DeleteEntries( a1, a2, a3 ) \ 1265 CheckParameters3( IABContainer_DeleteEntries, a1, a2, a3 ) 1266 1267 #define Validate_IABContainer_ResolveNames( a1, a2, a3, a4, a5 ) \ 1268 ValidateParameters5( IABContainer_ResolveNames, a1, a2, a3, a4, a5 ) 1269 #define UlValidate_IABContainer_ResolveNames( a1, a2, a3, a4, a5 ) \ 1270 UlValidateParameters5( IABContainer_ResolveNames, a1, a2, a3, a4, a5 ) 1271 #define CheckParameters_IABContainer_ResolveNames( a1, a2, a3, a4, a5 ) \ 1272 CheckParameters5( IABContainer_ResolveNames, a1, a2, a3, a4, a5 ) 1273 1274 1275 /* IDistList */ 1276 1277 #define Validate_IDistList_CreateEntry( a1, a2, a3, a4, a5 ) \ 1278 ValidateParameters5( IDistList_CreateEntry, a1, a2, a3, a4, a5 ) 1279 #define UlValidate_IDistList_CreateEntry( a1, a2, a3, a4, a5 ) \ 1280 UlValidateParameters5( IDistList_CreateEntry, a1, a2, a3, a4, a5 ) 1281 #define CheckParameters_IDistList_CreateEntry( a1, a2, a3, a4, a5 ) \ 1282 CheckParameters5( IDistList_CreateEntry, a1, a2, a3, a4, a5 ) 1283 1284 #define Validate_IDistList_CopyEntries( a1, a2, a3, a4, a5 ) \ 1285 ValidateParameters5( IDistList_CopyEntries, a1, a2, a3, a4, a5 ) 1286 #define UlValidate_IDistList_CopyEntries( a1, a2, a3, a4, a5 ) \ 1287 UlValidateParameters5( IDistList_CopyEntries, a1, a2, a3, a4, a5 ) 1288 #define CheckParameters_IDistList_CopyEntries( a1, a2, a3, a4, a5 ) \ 1289 CheckParameters5( IDistList_CopyEntries, a1, a2, a3, a4, a5 ) 1290 1291 #define Validate_IDistList_DeleteEntries( a1, a2, a3 ) \ 1292 ValidateParameters3( IDistList_DeleteEntries, a1, a2, a3 ) 1293 #define UlValidate_IDistList_DeleteEntries( a1, a2, a3 ) \ 1294 UlValidateParameters3( IDistList_DeleteEntries, a1, a2, a3 ) 1295 #define CheckParameters_IDistList_DeleteEntries( a1, a2, a3 ) \ 1296 CheckParameters3( IDistList_DeleteEntries, a1, a2, a3 ) 1297 1298 #define Validate_IDistList_ResolveNames( a1, a2, a3, a4, a5 ) \ 1299 ValidateParameters5( IDistList_ResolveNames, a1, a2, a3, a4, a5 ) 1300 #define UlValidate_IDistList_ResolveNames( a1, a2, a3, a4, a5 ) \ 1301 UlValidateParameters5( IDistList_ResolveNames, a1, a2, a3, a4, a5 ) 1302 #define CheckParameters_IDistList_ResolveNames( a1, a2, a3, a4, a5 ) \ 1303 CheckParameters5( IDistList_ResolveNames, a1, a2, a3, a4, a5 ) 1304 1305 1306 /* IMAPIFolder */ 1307 1308 #define Validate_IMAPIFolder_CreateMessage( a1, a2, a3, a4 ) \ 1309 ValidateParameters4( IMAPIFolder_CreateMessage, a1, a2, a3, a4 ) 1310 #define UlValidate_IMAPIFolder_CreateMessage( a1, a2, a3, a4 ) \ 1311 UlValidateParameters4( IMAPIFolder_CreateMessage, a1, a2, a3, a4 ) 1312 #define CheckParameters_IMAPIFolder_CreateMessage( a1, a2, a3, a4 ) \ 1313 CheckParameters4( IMAPIFolder_CreateMessage, a1, a2, a3, a4 ) 1314 1315 #define Validate_IMAPIFolder_CopyMessages( a1, a2, a3, a4, a5, a6, a7 ) \ 1316 ValidateParameters7( IMAPIFolder_CopyMessages, a1, a2, a3, a4, a5, a6, a7 ) 1317 #define UlValidate_IMAPIFolder_CopyMessages( a1, a2, a3, a4, a5, a6, a7 ) \ 1318 UlValidateParameters7( IMAPIFolder_CopyMessages, a1, a2, a3, a4, a5, a6, a7 ) 1319 #define CheckParameters_IMAPIFolder_CopyMessages( a1, a2, a3, a4, a5, a6, a7 ) \ 1320 CheckParameters7( IMAPIFolder_CopyMessages, a1, a2, a3, a4, a5, a6, a7 ) 1321 1322 #define Validate_IMAPIFolder_DeleteMessages( a1, a2, a3, a4, a5 ) \ 1323 ValidateParameters5( IMAPIFolder_DeleteMessages, a1, a2, a3, a4, a5 ) 1324 #define UlValidate_IMAPIFolder_DeleteMessages( a1, a2, a3, a4, a5 ) \ 1325 UlValidateParameters5( IMAPIFolder_DeleteMessages, a1, a2, a3, a4, a5 ) 1326 #define CheckParameters_IMAPIFolder_DeleteMessages( a1, a2, a3, a4, a5 ) \ 1327 CheckParameters5( IMAPIFolder_DeleteMessages, a1, a2, a3, a4, a5 ) 1328 1329 #define Validate_IMAPIFolder_CreateFolder( a1, a2, a3, a4, a5, a6, a7 ) \ 1330 ValidateParameters7( IMAPIFolder_CreateFolder, a1, a2, a3, a4, a5, a6, a7 ) 1331 #define UlValidate_IMAPIFolder_CreateFolder( a1, a2, a3, a4, a5, a6, a7 ) \ 1332 UlValidateParameters7( IMAPIFolder_CreateFolder, a1, a2, a3, a4, a5, a6, a7 ) 1333 #define CheckParameters_IMAPIFolder_CreateFolder( a1, a2, a3, a4, a5, a6, a7 ) \ 1334 CheckParameters7( IMAPIFolder_CreateFolder, a1, a2, a3, a4, a5, a6, a7 ) 1335 1336 #define Validate_IMAPIFolder_CopyFolder( a1, a2, a3, a4, a5, a6, a7, a8, a9 ) \ 1337 ValidateParameters9( IMAPIFolder_CopyFolder, a1, a2, a3, a4, a5, a6, a7, a8, a9 ) 1338 #define UlValidate_IMAPIFolder_CopyFolder( a1, a2, a3, a4, a5, a6, a7, a8, a9 ) \ 1339 UlValidateParameters9( IMAPIFolder_CopyFolder, a1, a2, a3, a4, a5, a6, a7, a8, a9 ) 1340 #define CheckParameters_IMAPIFolder_CopyFolder( a1, a2, a3, a4, a5, a6, a7, a8, a9 ) \ 1341 CheckParameters9( IMAPIFolder_CopyFolder, a1, a2, a3, a4, a5, a6, a7, a8, a9 ) 1342 1343 #define Validate_IMAPIFolder_DeleteFolder( a1, a2, a3, a4, a5, a6 ) \ 1344 ValidateParameters6( IMAPIFolder_DeleteFolder, a1, a2, a3, a4, a5, a6 ) 1345 #define UlValidate_IMAPIFolder_DeleteFolder( a1, a2, a3, a4, a5, a6 ) \ 1346 UlValidateParameters6( IMAPIFolder_DeleteFolder, a1, a2, a3, a4, a5, a6 ) 1347 #define CheckParameters_IMAPIFolder_DeleteFolder( a1, a2, a3, a4, a5, a6 ) \ 1348 CheckParameters6( IMAPIFolder_DeleteFolder, a1, a2, a3, a4, a5, a6 ) 1349 1350 #define Validate_IMAPIFolder_SetReadFlags( a1, a2, a3, a4, a5 ) \ 1351 ValidateParameters5( IMAPIFolder_SetReadFlags, a1, a2, a3, a4, a5 ) 1352 #define UlValidate_IMAPIFolder_SetReadFlags( a1, a2, a3, a4, a5 ) \ 1353 UlValidateParameters5( IMAPIFolder_SetReadFlags, a1, a2, a3, a4, a5 ) 1354 #define CheckParameters_IMAPIFolder_SetReadFlags( a1, a2, a3, a4, a5 ) \ 1355 CheckParameters5( IMAPIFolder_SetReadFlags, a1, a2, a3, a4, a5 ) 1356 1357 #define Validate_IMAPIFolder_GetMessageStatus( a1, a2, a3, a4, a5 ) \ 1358 ValidateParameters5( IMAPIFolder_GetMessageStatus, a1, a2, a3, a4, a5 ) 1359 #define UlValidate_IMAPIFolder_GetMessageStatus( a1, a2, a3, a4, a5 ) \ 1360 UlValidateParameters5( IMAPIFolder_GetMessageStatus, a1, a2, a3, a4, a5 ) 1361 #define CheckParameters_IMAPIFolder_GetMessageStatus( a1, a2, a3, a4, a5 ) \ 1362 CheckParameters5( IMAPIFolder_GetMessageStatus, a1, a2, a3, a4, a5 ) 1363 1364 #define Validate_IMAPIFolder_SetMessageStatus( a1, a2, a3, a4, a5, a6 ) \ 1365 ValidateParameters6( IMAPIFolder_SetMessageStatus, a1, a2, a3, a4, a5, a6 ) 1366 #define UlValidate_IMAPIFolder_SetMessageStatus( a1, a2, a3, a4, a5, a6 ) \ 1367 UlValidateParameters6( IMAPIFolder_SetMessageStatus, a1, a2, a3, a4, a5, a6 ) 1368 #define CheckParameters_IMAPIFolder_SetMessageStatus( a1, a2, a3, a4, a5, a6 ) \ 1369 CheckParameters6( IMAPIFolder_SetMessageStatus, a1, a2, a3, a4, a5, a6 ) 1370 1371 #define Validate_IMAPIFolder_SaveContentsSort( a1, a2, a3 ) \ 1372 ValidateParameters3( IMAPIFolder_SaveContentsSort, a1, a2, a3 ) 1373 #define UlValidate_IMAPIFolder_SaveContentsSort( a1, a2, a3 ) \ 1374 UlValidateParameters3( IMAPIFolder_SaveContentsSort, a1, a2, a3 ) 1375 #define CheckParameters_IMAPIFolder_SaveContentsSort( a1, a2, a3 ) \ 1376 CheckParameters3( IMAPIFolder_SaveContentsSort, a1, a2, a3 ) 1377 1378 #define Validate_IMAPIFolder_EmptyFolder( a1, a2, a3, a4 ) \ 1379 ValidateParameters4( IMAPIFolder_EmptyFolder, a1, a2, a3, a4 ) 1380 #define UlValidate_IMAPIFolder_EmptyFolder( a1, a2, a3, a4 ) \ 1381 UlValidateParameters4( IMAPIFolder_EmptyFolder, a1, a2, a3, a4 ) 1382 #define CheckParameters_IMAPIFolder_EmptyFolder( a1, a2, a3, a4 ) \ 1383 CheckParameters4( IMAPIFolder_EmptyFolder, a1, a2, a3, a4 ) 1384 1385 1386 /* IMsgStore */ 1387 1388 #define Validate_IMsgStore_Advise( a1, a2, a3, a4, a5, a6 ) \ 1389 ValidateParameters6( IMsgStore_Advise, a1, a2, a3, a4, a5, a6 ) 1390 #define UlValidate_IMsgStore_Advise( a1, a2, a3, a4, a5, a6 ) \ 1391 UlValidateParameters6( IMsgStore_Advise, a1, a2, a3, a4, a5, a6 ) 1392 #define CheckParameters_IMsgStore_Advise( a1, a2, a3, a4, a5, a6 ) \ 1393 CheckParameters6( IMsgStore_Advise, a1, a2, a3, a4, a5, a6 ) 1394 1395 #define Validate_IMsgStore_Unadvise( a1, a2 ) \ 1396 ValidateParameters2( IMsgStore_Unadvise, a1, a2 ) 1397 #define UlValidate_IMsgStore_Unadvise( a1, a2 ) \ 1398 UlValidateParameters2( IMsgStore_Unadvise, a1, a2 ) 1399 #define CheckParameters_IMsgStore_Unadvise( a1, a2 ) \ 1400 CheckParameters2( IMsgStore_Unadvise, a1, a2 ) 1401 1402 #define Validate_IMsgStore_CompareEntryIDs( a1, a2, a3, a4, a5, a6, a7 ) \ 1403 ValidateParameters7( IMsgStore_CompareEntryIDs, a1, a2, a3, a4, a5, a6, a7 ) 1404 #define UlValidate_IMsgStore_CompareEntryIDs( a1, a2, a3, a4, a5, a6, a7 ) \ 1405 UlValidateParameters7( IMsgStore_CompareEntryIDs, a1, a2, a3, a4, a5, a6, a7 ) 1406 #define CheckParameters_IMsgStore_CompareEntryIDs( a1, a2, a3, a4, a5, a6, a7 ) \ 1407 CheckParameters7( IMsgStore_CompareEntryIDs, a1, a2, a3, a4, a5, a6, a7 ) 1408 1409 #define Validate_IMsgStore_OpenEntry( a1, a2, a3, a4, a5, a6, a7 ) \ 1410 ValidateParameters7( IMsgStore_OpenEntry, a1, a2, a3, a4, a5, a6, a7 ) 1411 #define UlValidate_IMsgStore_OpenEntry( a1, a2, a3, a4, a5, a6, a7 ) \ 1412 UlValidateParameters7( IMsgStore_OpenEntry, a1, a2, a3, a4, a5, a6, a7 ) 1413 #define CheckParameters_IMsgStore_OpenEntry( a1, a2, a3, a4, a5, a6, a7 ) \ 1414 CheckParameters7( IMsgStore_OpenEntry, a1, a2, a3, a4, a5, a6, a7 ) 1415 1416 #define Validate_IMsgStore_SetReceiveFolder( a1, a2, a3, a4, a5 ) \ 1417 ValidateParameters5( IMsgStore_SetReceiveFolder, a1, a2, a3, a4, a5 ) 1418 #define UlValidate_IMsgStore_SetReceiveFolder( a1, a2, a3, a4, a5 ) \ 1419 UlValidateParameters5( IMsgStore_SetReceiveFolder, a1, a2, a3, a4, a5 ) 1420 #define CheckParameters_IMsgStore_SetReceiveFolder( a1, a2, a3, a4, a5 ) \ 1421 CheckParameters5( IMsgStore_SetReceiveFolder, a1, a2, a3, a4, a5 ) 1422 1423 #define Validate_IMsgStore_GetReceiveFolder( a1, a2, a3, a4, a5, a6 ) \ 1424 ValidateParameters6( IMsgStore_GetReceiveFolder, a1, a2, a3, a4, a5, a6 ) 1425 #define UlValidate_IMsgStore_GetReceiveFolder( a1, a2, a3, a4, a5, a6 ) \ 1426 UlValidateParameters6( IMsgStore_GetReceiveFolder, a1, a2, a3, a4, a5, a6 ) 1427 #define CheckParameters_IMsgStore_GetReceiveFolder( a1, a2, a3, a4, a5, a6 ) \ 1428 CheckParameters6( IMsgStore_GetReceiveFolder, a1, a2, a3, a4, a5, a6 ) 1429 1430 #define Validate_IMsgStore_GetReceiveFolderTable( a1, a2, a3 ) \ 1431 ValidateParameters3( IMsgStore_GetReceiveFolderTable, a1, a2, a3 ) 1432 #define UlValidate_IMsgStore_GetReceiveFolderTable( a1, a2, a3 ) \ 1433 UlValidateParameters3( IMsgStore_GetReceiveFolderTable, a1, a2, a3 ) 1434 #define CheckParameters_IMsgStore_GetReceiveFolderTable( a1, a2, a3 ) \ 1435 CheckParameters3( IMsgStore_GetReceiveFolderTable, a1, a2, a3 ) 1436 1437 #define Validate_IMsgStore_StoreLogoff( a1, a2 ) \ 1438 ValidateParameters2( IMsgStore_StoreLogoff, a1, a2 ) 1439 #define UlValidate_IMsgStore_StoreLogoff( a1, a2 ) \ 1440 UlValidateParameters2( IMsgStore_StoreLogoff, a1, a2 ) 1441 #define CheckParameters_IMsgStore_StoreLogoff( a1, a2 ) \ 1442 CheckParameters2( IMsgStore_StoreLogoff, a1, a2 ) 1443 1444 #define Validate_IMsgStore_AbortSubmit( a1, a2, a3, a4 ) \ 1445 ValidateParameters4( IMsgStore_AbortSubmit, a1, a2, a3, a4 ) 1446 #define UlValidate_IMsgStore_AbortSubmit( a1, a2, a3, a4 ) \ 1447 UlValidateParameters4( IMsgStore_AbortSubmit, a1, a2, a3, a4 ) 1448 #define CheckParameters_IMsgStore_AbortSubmit( a1, a2, a3, a4 ) \ 1449 CheckParameters4( IMsgStore_AbortSubmit, a1, a2, a3, a4 ) 1450 1451 #define Validate_IMsgStore_GetOutgoingQueue( a1, a2, a3 ) \ 1452 ValidateParameters3( IMsgStore_GetOutgoingQueue, a1, a2, a3 ) 1453 #define UlValidate_IMsgStore_GetOutgoingQueue( a1, a2, a3 ) \ 1454 UlValidateParameters3( IMsgStore_GetOutgoingQueue, a1, a2, a3 ) 1455 #define CheckParameters_IMsgStore_GetOutgoingQueue( a1, a2, a3 ) \ 1456 CheckParameters3( IMsgStore_GetOutgoingQueue, a1, a2, a3 ) 1457 1458 #define Validate_IMsgStore_SetLockState( a1, a2, a3 ) \ 1459 ValidateParameters3( IMsgStore_SetLockState, a1, a2, a3 ) 1460 #define UlValidate_IMsgStore_SetLockState( a1, a2, a3 ) \ 1461 UlValidateParameters3( IMsgStore_SetLockState, a1, a2, a3 ) 1462 #define CheckParameters_IMsgStore_SetLockState( a1, a2, a3 ) \ 1463 CheckParameters3( IMsgStore_SetLockState, a1, a2, a3 ) 1464 1465 #define Validate_IMsgStore_FinishedMsg( a1, a2, a3, a4 ) \ 1466 ValidateParameters4( IMsgStore_FinishedMsg, a1, a2, a3, a4 ) 1467 #define UlValidate_IMsgStore_FinishedMsg( a1, a2, a3, a4 ) \ 1468 UlValidateParameters4( IMsgStore_FinishedMsg, a1, a2, a3, a4 ) 1469 #define CheckParameters_IMsgStore_FinishedMsg( a1, a2, a3, a4 ) \ 1470 CheckParameters4( IMsgStore_FinishedMsg, a1, a2, a3, a4 ) 1471 1472 #define Validate_IMsgStore_NotifyNewMail( a1, a2 ) \ 1473 ValidateParameters2( IMsgStore_NotifyNewMail, a1, a2 ) 1474 #define UlValidate_IMsgStore_NotifyNewMail( a1, a2 ) \ 1475 UlValidateParameters2( IMsgStore_NotifyNewMail, a1, a2 ) 1476 #define CheckParameters_IMsgStore_NotifyNewMail( a1, a2 ) \ 1477 CheckParameters2( IMsgStore_NotifyNewMail, a1, a2 ) 1478 1479 1480 /* IMessage */ 1481 1482 #define Validate_IMessage_GetAttachmentTable( a1, a2, a3 ) \ 1483 ValidateParameters3( IMessage_GetAttachmentTable, a1, a2, a3 ) 1484 #define UlValidate_IMessage_GetAttachmentTable( a1, a2, a3 ) \ 1485 UlValidateParameters3( IMessage_GetAttachmentTable, a1, a2, a3 ) 1486 #define CheckParameters_IMessage_GetAttachmentTable( a1, a2, a3 ) \ 1487 CheckParameters3( IMessage_GetAttachmentTable, a1, a2, a3 ) 1488 1489 #define Validate_IMessage_OpenAttach( a1, a2, a3, a4, a5 ) \ 1490 ValidateParameters5( IMessage_OpenAttach, a1, a2, a3, a4, a5 ) 1491 #define UlValidate_IMessage_OpenAttach( a1, a2, a3, a4, a5 ) \ 1492 UlValidateParameters5( IMessage_OpenAttach, a1, a2, a3, a4, a5 ) 1493 #define CheckParameters_IMessage_OpenAttach( a1, a2, a3, a4, a5 ) \ 1494 CheckParameters5( IMessage_OpenAttach, a1, a2, a3, a4, a5 ) 1495 1496 #define Validate_IMessage_CreateAttach( a1, a2, a3, a4, a5 ) \ 1497 ValidateParameters5( IMessage_CreateAttach, a1, a2, a3, a4, a5 ) 1498 #define UlValidate_IMessage_CreateAttach( a1, a2, a3, a4, a5 ) \ 1499 UlValidateParameters5( IMessage_CreateAttach, a1, a2, a3, a4, a5 ) 1500 #define CheckParameters_IMessage_CreateAttach( a1, a2, a3, a4, a5 ) \ 1501 CheckParameters5( IMessage_CreateAttach, a1, a2, a3, a4, a5 ) 1502 1503 #define Validate_IMessage_DeleteAttach( a1, a2, a3, a4, a5 ) \ 1504 ValidateParameters5( IMessage_DeleteAttach, a1, a2, a3, a4, a5 ) 1505 #define UlValidate_IMessage_DeleteAttach( a1, a2, a3, a4, a5 ) \ 1506 UlValidateParameters5( IMessage_DeleteAttach, a1, a2, a3, a4, a5 ) 1507 #define CheckParameters_IMessage_DeleteAttach( a1, a2, a3, a4, a5 ) \ 1508 CheckParameters5( IMessage_DeleteAttach, a1, a2, a3, a4, a5 ) 1509 1510 #define Validate_IMessage_GetRecipientTable( a1, a2, a3 ) \ 1511 ValidateParameters3( IMessage_GetRecipientTable, a1, a2, a3 ) 1512 #define UlValidate_IMessage_GetRecipientTable( a1, a2, a3 ) \ 1513 UlValidateParameters3( IMessage_GetRecipientTable, a1, a2, a3 ) 1514 #define CheckParameters_IMessage_GetRecipientTable( a1, a2, a3 ) \ 1515 CheckParameters3( IMessage_GetRecipientTable, a1, a2, a3 ) 1516 1517 #define Validate_IMessage_ModifyRecipients( a1, a2, a3 ) \ 1518 ValidateParameters3( IMessage_ModifyRecipients, a1, a2, a3 ) 1519 #define UlValidate_IMessage_ModifyRecipients( a1, a2, a3 ) \ 1520 UlValidateParameters3( IMessage_ModifyRecipients, a1, a2, a3 ) 1521 #define CheckParameters_IMessage_ModifyRecipients( a1, a2, a3 ) \ 1522 CheckParameters3( IMessage_ModifyRecipients, a1, a2, a3 ) 1523 1524 #define Validate_IMessage_SubmitMessage( a1, a2 ) \ 1525 ValidateParameters2( IMessage_SubmitMessage, a1, a2 ) 1526 #define UlValidate_IMessage_SubmitMessage( a1, a2 ) \ 1527 UlValidateParameters2( IMessage_SubmitMessage, a1, a2 ) 1528 #define CheckParameters_IMessage_SubmitMessage( a1, a2 ) \ 1529 CheckParameters2( IMessage_SubmitMessage, a1, a2 ) 1530 1531 #define Validate_IMessage_SetReadFlag( a1, a2 ) \ 1532 ValidateParameters2( IMessage_SetReadFlag, a1, a2 ) 1533 #define UlValidate_IMessage_SetReadFlag( a1, a2 ) \ 1534 UlValidateParameters2( IMessage_SetReadFlag, a1, a2 ) 1535 #define CheckParameters_IMessage_SetReadFlag( a1, a2 ) \ 1536 CheckParameters2( IMessage_SetReadFlag, a1, a2 ) 1537 1538 1539 /* IABProvider */ 1540 1541 #define Validate_IABProvider_Shutdown( a1, a2 ) \ 1542 ValidateParameters2( IABProvider_Shutdown, a1, a2 ) 1543 #define UlValidate_IABProvider_Shutdown( a1, a2 ) \ 1544 UlValidateParameters2( IABProvider_Shutdown, a1, a2 ) 1545 #define CheckParameters_IABProvider_Shutdown( a1, a2 ) \ 1546 CheckParameters2( IABProvider_Shutdown, a1, a2 ) 1547 1548 #define Validate_IABProvider_Logon( a1, a2, a3, a4, a5, a6, a7, a8, a9 ) \ 1549 ValidateParameters9( IABProvider_Logon, a1, a2, a3, a4, a5, a6, a7, a8, a9 ) 1550 #define UlValidate_IABProvider_Logon( a1, a2, a3, a4, a5, a6, a7, a8, a9 ) \ 1551 UlValidateParameters9( IABProvider_Logon, a1, a2, a3, a4, a5, a6, a7, a8, a9 ) 1552 #define CheckParameters_IABProvider_Logon( a1, a2, a3, a4, a5, a6, a7, a8, a9 ) \ 1553 CheckParameters9( IABProvider_Logon, a1, a2, a3, a4, a5, a6, a7, a8, a9 ) 1554 1555 1556 /* IABLogon */ 1557 1558 #define Validate_IABLogon_GetLastError( a1, a2, a3, a4 ) \ 1559 ValidateParameters4( IABLogon_GetLastError, a1, a2, a3, a4 ) 1560 #define UlValidate_IABLogon_GetLastError( a1, a2, a3, a4 ) \ 1561 UlValidateParameters4( IABLogon_GetLastError, a1, a2, a3, a4 ) 1562 #define CheckParameters_IABLogon_GetLastError( a1, a2, a3, a4 ) \ 1563 CheckParameters4( IABLogon_GetLastError, a1, a2, a3, a4 ) 1564 1565 #define Validate_IABLogon_Logoff( a1, a2 ) \ 1566 ValidateParameters2( IABLogon_Logoff, a1, a2 ) 1567 #define UlValidate_IABLogon_Logoff( a1, a2 ) \ 1568 UlValidateParameters2( IABLogon_Logoff, a1, a2 ) 1569 #define CheckParameters_IABLogon_Logoff( a1, a2 ) \ 1570 CheckParameters2( IABLogon_Logoff, a1, a2 ) 1571 1572 #define Validate_IABLogon_OpenEntry( a1, a2, a3, a4, a5, a6, a7 ) \ 1573 ValidateParameters7( IABLogon_OpenEntry, a1, a2, a3, a4, a5, a6, a7 ) 1574 #define UlValidate_IABLogon_OpenEntry( a1, a2, a3, a4, a5, a6, a7 ) \ 1575 UlValidateParameters7( IABLogon_OpenEntry, a1, a2, a3, a4, a5, a6, a7 ) 1576 #define CheckParameters_IABLogon_OpenEntry( a1, a2, a3, a4, a5, a6, a7 ) \ 1577 CheckParameters7( IABLogon_OpenEntry, a1, a2, a3, a4, a5, a6, a7 ) 1578 1579 #define Validate_IABLogon_CompareEntryIDs( a1, a2, a3, a4, a5, a6, a7 ) \ 1580 ValidateParameters7( IABLogon_CompareEntryIDs, a1, a2, a3, a4, a5, a6, a7 ) 1581 #define UlValidate_IABLogon_CompareEntryIDs( a1, a2, a3, a4, a5, a6, a7 ) \ 1582 UlValidateParameters7( IABLogon_CompareEntryIDs, a1, a2, a3, a4, a5, a6, a7 ) 1583 #define CheckParameters_IABLogon_CompareEntryIDs( a1, a2, a3, a4, a5, a6, a7 ) \ 1584 CheckParameters7( IABLogon_CompareEntryIDs, a1, a2, a3, a4, a5, a6, a7 ) 1585 1586 #define Validate_IABLogon_Advise( a1, a2, a3, a4, a5, a6 ) \ 1587 ValidateParameters6( IABLogon_Advise, a1, a2, a3, a4, a5, a6 ) 1588 #define UlValidate_IABLogon_Advise( a1, a2, a3, a4, a5, a6 ) \ 1589 UlValidateParameters6( IABLogon_Advise, a1, a2, a3, a4, a5, a6 ) 1590 #define CheckParameters_IABLogon_Advise( a1, a2, a3, a4, a5, a6 ) \ 1591 CheckParameters6( IABLogon_Advise, a1, a2, a3, a4, a5, a6 ) 1592 1593 #define Validate_IABLogon_Unadvise( a1, a2 ) \ 1594 ValidateParameters2( IABLogon_Unadvise, a1, a2 ) 1595 #define UlValidate_IABLogon_Unadvise( a1, a2 ) \ 1596 UlValidateParameters2( IABLogon_Unadvise, a1, a2 ) 1597 #define CheckParameters_IABLogon_Unadvise( a1, a2 ) \ 1598 CheckParameters2( IABLogon_Unadvise, a1, a2 ) 1599 1600 #define Validate_IABLogon_OpenStatusEntry( a1, a2, a3, a4, a5 ) \ 1601 ValidateParameters5( IABLogon_OpenStatusEntry, a1, a2, a3, a4, a5 ) 1602 #define UlValidate_IABLogon_OpenStatusEntry( a1, a2, a3, a4, a5 ) \ 1603 UlValidateParameters5( IABLogon_OpenStatusEntry, a1, a2, a3, a4, a5 ) 1604 #define CheckParameters_IABLogon_OpenStatusEntry( a1, a2, a3, a4, a5 ) \ 1605 CheckParameters5( IABLogon_OpenStatusEntry, a1, a2, a3, a4, a5 ) 1606 1607 #define Validate_IABLogon_OpenTemplateID( a1, a2, a3, a4, a5, a6, a7, a8 ) \ 1608 ValidateParameters8( IABLogon_OpenTemplateID, a1, a2, a3, a4, a5, a6, a7, a8 ) 1609 #define UlValidate_IABLogon_OpenTemplateID( a1, a2, a3, a4, a5, a6, a7, a8 ) \ 1610 UlValidateParameters8( IABLogon_OpenTemplateID, a1, a2, a3, a4, a5, a6, a7, a8 ) 1611 #define CheckParameters_IABLogon_OpenTemplateID( a1, a2, a3, a4, a5, a6, a7, a8 ) \ 1612 CheckParameters8( IABLogon_OpenTemplateID, a1, a2, a3, a4, a5, a6, a7, a8 ) 1613 1614 #define Validate_IABLogon_GetOneOffTable( a1, a2, a3 ) \ 1615 ValidateParameters3( IABLogon_GetOneOffTable, a1, a2, a3 ) 1616 #define UlValidate_IABLogon_GetOneOffTable( a1, a2, a3 ) \ 1617 UlValidateParameters3( IABLogon_GetOneOffTable, a1, a2, a3 ) 1618 #define CheckParameters_IABLogon_GetOneOffTable( a1, a2, a3 ) \ 1619 CheckParameters3( IABLogon_GetOneOffTable, a1, a2, a3 ) 1620 1621 #define Validate_IABLogon_PrepareRecips( a1, a2, a3, a4 ) \ 1622 ValidateParameters4( IABLogon_PrepareRecips, a1, a2, a3, a4 ) 1623 #define UlValidate_IABLogon_PrepareRecips( a1, a2, a3, a4 ) \ 1624 UlValidateParameters4( IABLogon_PrepareRecips, a1, a2, a3, a4 ) 1625 #define CheckParameters_IABLogon_PrepareRecips( a1, a2, a3, a4 ) \ 1626 CheckParameters4( IABLogon_PrepareRecips, a1, a2, a3, a4 ) 1627 1628 1629 /* IXPProvider */ 1630 1631 #define Validate_IXPProvider_Shutdown( a1, a2 ) \ 1632 ValidateParameters2( IXPProvider_Shutdown, a1, a2 ) 1633 #define UlValidate_IXPProvider_Shutdown( a1, a2 ) \ 1634 UlValidateParameters2( IXPProvider_Shutdown, a1, a2 ) 1635 #define CheckParameters_IXPProvider_Shutdown( a1, a2 ) \ 1636 CheckParameters2( IXPProvider_Shutdown, a1, a2 ) 1637 1638 #define Validate_IXPProvider_TransportLogon( a1, a2, a3, a4, a5, a6, a7 ) \ 1639 ValidateParameters7( IXPProvider_TransportLogon, a1, a2, a3, a4, a5, a6, a7 ) 1640 #define UlValidate_IXPProvider_TransportLogon( a1, a2, a3, a4, a5, a6, a7 ) \ 1641 UlValidateParameters7( IXPProvider_TransportLogon, a1, a2, a3, a4, a5, a6, a7 ) 1642 #define CheckParameters_IXPProvider_TransportLogon( a1, a2, a3, a4, a5, a6, a7 ) \ 1643 CheckParameters7( IXPProvider_TransportLogon, a1, a2, a3, a4, a5, a6, a7 ) 1644 1645 1646 /* IXPLogon */ 1647 1648 #define Validate_IXPLogon_AddressTypes( a1, a2, a3, a4, a5, a6 ) \ 1649 ValidateParameters6( IXPLogon_AddressTypes, a1, a2, a3, a4, a5, a6 ) 1650 #define UlValidate_IXPLogon_AddressTypes( a1, a2, a3, a4, a5, a6 ) \ 1651 UlValidateParameters6( IXPLogon_AddressTypes, a1, a2, a3, a4, a5, a6 ) 1652 #define CheckParameters_IXPLogon_AddressTypes( a1, a2, a3, a4, a5, a6 ) \ 1653 CheckParameters6( IXPLogon_AddressTypes, a1, a2, a3, a4, a5, a6 ) 1654 1655 #define Validate_IXPLogon_RegisterOptions( a1, a2, a3, a4 ) \ 1656 ValidateParameters4( IXPLogon_RegisterOptions, a1, a2, a3, a4 ) 1657 #define UlValidate_IXPLogon_RegisterOptions( a1, a2, a3, a4 ) \ 1658 UlValidateParameters4( IXPLogon_RegisterOptions, a1, a2, a3, a4 ) 1659 #define CheckParameters_IXPLogon_RegisterOptions( a1, a2, a3, a4 ) \ 1660 CheckParameters4( IXPLogon_RegisterOptions, a1, a2, a3, a4 ) 1661 1662 #define Validate_IXPLogon_TransportNotify( a1, a2, a3 ) \ 1663 ValidateParameters3( IXPLogon_TransportNotify, a1, a2, a3 ) 1664 #define UlValidate_IXPLogon_TransportNotify( a1, a2, a3 ) \ 1665 UlValidateParameters3( IXPLogon_TransportNotify, a1, a2, a3 ) 1666 #define CheckParameters_IXPLogon_TransportNotify( a1, a2, a3 ) \ 1667 CheckParameters3( IXPLogon_TransportNotify, a1, a2, a3 ) 1668 1669 #define Validate_IXPLogon_Idle( a1, a2 ) \ 1670 ValidateParameters2( IXPLogon_Idle, a1, a2 ) 1671 #define UlValidate_IXPLogon_Idle( a1, a2 ) \ 1672 UlValidateParameters2( IXPLogon_Idle, a1, a2 ) 1673 #define CheckParameters_IXPLogon_Idle( a1, a2 ) \ 1674 CheckParameters2( IXPLogon_Idle, a1, a2 ) 1675 1676 #define Validate_IXPLogon_TransportLogoff( a1, a2 ) \ 1677 ValidateParameters2( IXPLogon_TransportLogoff, a1, a2 ) 1678 #define UlValidate_IXPLogon_TransportLogoff( a1, a2 ) \ 1679 UlValidateParameters2( IXPLogon_TransportLogoff, a1, a2 ) 1680 #define CheckParameters_IXPLogon_TransportLogoff( a1, a2 ) \ 1681 CheckParameters2( IXPLogon_TransportLogoff, a1, a2 ) 1682 1683 #define Validate_IXPLogon_SubmitMessage( a1, a2, a3, a4, a5 ) \ 1684 ValidateParameters5( IXPLogon_SubmitMessage, a1, a2, a3, a4, a5 ) 1685 #define UlValidate_IXPLogon_SubmitMessage( a1, a2, a3, a4, a5 ) \ 1686 UlValidateParameters5( IXPLogon_SubmitMessage, a1, a2, a3, a4, a5 ) 1687 #define CheckParameters_IXPLogon_SubmitMessage( a1, a2, a3, a4, a5 ) \ 1688 CheckParameters5( IXPLogon_SubmitMessage, a1, a2, a3, a4, a5 ) 1689 1690 #define Validate_IXPLogon_EndMessage( a1, a2, a3 ) \ 1691 ValidateParameters3( IXPLogon_EndMessage, a1, a2, a3 ) 1692 #define UlValidate_IXPLogon_EndMessage( a1, a2, a3 ) \ 1693 UlValidateParameters3( IXPLogon_EndMessage, a1, a2, a3 ) 1694 #define CheckParameters_IXPLogon_EndMessage( a1, a2, a3 ) \ 1695 CheckParameters3( IXPLogon_EndMessage, a1, a2, a3 ) 1696 1697 #define Validate_IXPLogon_Poll( a1, a2 ) \ 1698 ValidateParameters2( IXPLogon_Poll, a1, a2 ) 1699 #define UlValidate_IXPLogon_Poll( a1, a2 ) \ 1700 UlValidateParameters2( IXPLogon_Poll, a1, a2 ) 1701 #define CheckParameters_IXPLogon_Poll( a1, a2 ) \ 1702 CheckParameters2( IXPLogon_Poll, a1, a2 ) 1703 1704 #define Validate_IXPLogon_StartMessage( a1, a2, a3, a4 ) \ 1705 ValidateParameters4( IXPLogon_StartMessage, a1, a2, a3, a4 ) 1706 #define UlValidate_IXPLogon_StartMessage( a1, a2, a3, a4 ) \ 1707 UlValidateParameters4( IXPLogon_StartMessage, a1, a2, a3, a4 ) 1708 #define CheckParameters_IXPLogon_StartMessage( a1, a2, a3, a4 ) \ 1709 CheckParameters4( IXPLogon_StartMessage, a1, a2, a3, a4 ) 1710 1711 #define Validate_IXPLogon_OpenStatusEntry( a1, a2, a3, a4, a5 ) \ 1712 ValidateParameters5( IXPLogon_OpenStatusEntry, a1, a2, a3, a4, a5 ) 1713 #define UlValidate_IXPLogon_OpenStatusEntry( a1, a2, a3, a4, a5 ) \ 1714 UlValidateParameters5( IXPLogon_OpenStatusEntry, a1, a2, a3, a4, a5 ) 1715 #define CheckParameters_IXPLogon_OpenStatusEntry( a1, a2, a3, a4, a5 ) \ 1716 CheckParameters5( IXPLogon_OpenStatusEntry, a1, a2, a3, a4, a5 ) 1717 1718 #define Validate_IXPLogon_ValidateState( a1, a2, a3 ) \ 1719 ValidateParameters3( IXPLogon_ValidateState, a1, a2, a3 ) 1720 #define UlValidate_IXPLogon_ValidateState( a1, a2, a3 ) \ 1721 UlValidateParameters3( IXPLogon_ValidateState, a1, a2, a3 ) 1722 #define CheckParameters_IXPLogon_ValidateState( a1, a2, a3 ) \ 1723 CheckParameters3( IXPLogon_ValidateState, a1, a2, a3 ) 1724 1725 #define Validate_IXPLogon_FlushQueues( a1, a2, a3, a4, a5 ) \ 1726 ValidateParameters5( IXPLogon_FlushQueues, a1, a2, a3, a4, a5 ) 1727 #define UlValidate_IXPLogon_FlushQueues( a1, a2, a3, a4, a5 ) \ 1728 UlValidateParameters5( IXPLogon_FlushQueues, a1, a2, a3, a4, a5 ) 1729 #define CheckParameters_IXPLogon_FlushQueues( a1, a2, a3, a4, a5 ) \ 1730 CheckParameters5( IXPLogon_FlushQueues, a1, a2, a3, a4, a5 ) 1731 1732 1733 /* IMSProvider */ 1734 1735 #define Validate_IMSProvider_Shutdown( a1, a2 ) \ 1736 ValidateParameters2( IMSProvider_Shutdown, a1, a2 ) 1737 #define UlValidate_IMSProvider_Shutdown( a1, a2 ) \ 1738 UlValidateParameters2( IMSProvider_Shutdown, a1, a2 ) 1739 #define CheckParameters_IMSProvider_Shutdown( a1, a2 ) \ 1740 CheckParameters2( IMSProvider_Shutdown, a1, a2 ) 1741 1742 #define Validate_IMSProvider_Logon( a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13 ) \ 1743 ValidateParameters13( IMSProvider_Logon, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13 ) 1744 #define UlValidate_IMSProvider_Logon( a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13 ) \ 1745 UlValidateParameters13( IMSProvider_Logon, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13 ) 1746 #define CheckParameters_IMSProvider_Logon( a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13 ) \ 1747 CheckParameters13( IMSProvider_Logon, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13 ) 1748 1749 #define Validate_IMSProvider_SpoolerLogon( a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13 ) \ 1750 ValidateParameters13( IMSProvider_SpoolerLogon, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13 ) 1751 #define UlValidate_IMSProvider_SpoolerLogon( a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13 ) \ 1752 UlValidateParameters13( IMSProvider_SpoolerLogon, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13 ) 1753 #define CheckParameters_IMSProvider_SpoolerLogon( a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13 ) \ 1754 CheckParameters13( IMSProvider_SpoolerLogon, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13 ) 1755 1756 #define Validate_IMSProvider_CompareStoreIDs( a1, a2, a3, a4, a5, a6, a7 ) \ 1757 ValidateParameters7( IMSProvider_CompareStoreIDs, a1, a2, a3, a4, a5, a6, a7 ) 1758 #define UlValidate_IMSProvider_CompareStoreIDs( a1, a2, a3, a4, a5, a6, a7 ) \ 1759 UlValidateParameters7( IMSProvider_CompareStoreIDs, a1, a2, a3, a4, a5, a6, a7 ) 1760 #define CheckParameters_IMSProvider_CompareStoreIDs( a1, a2, a3, a4, a5, a6, a7 ) \ 1761 CheckParameters7( IMSProvider_CompareStoreIDs, a1, a2, a3, a4, a5, a6, a7 ) 1762 1763 1764 /* IMSLogon */ 1765 1766 #define Validate_IMSLogon_GetLastError( a1, a2, a3, a4 ) \ 1767 ValidateParameters4( IMSLogon_GetLastError, a1, a2, a3, a4 ) 1768 #define UlValidate_IMSLogon_GetLastError( a1, a2, a3, a4 ) \ 1769 UlValidateParameters4( IMSLogon_GetLastError, a1, a2, a3, a4 ) 1770 #define CheckParameters_IMSLogon_GetLastError( a1, a2, a3, a4 ) \ 1771 CheckParameters4( IMSLogon_GetLastError, a1, a2, a3, a4 ) 1772 1773 #define Validate_IMSLogon_Logoff( a1, a2 ) \ 1774 ValidateParameters2( IMSLogon_Logoff, a1, a2 ) 1775 #define UlValidate_IMSLogon_Logoff( a1, a2 ) \ 1776 UlValidateParameters2( IMSLogon_Logoff, a1, a2 ) 1777 #define CheckParameters_IMSLogon_Logoff( a1, a2 ) \ 1778 CheckParameters2( IMSLogon_Logoff, a1, a2 ) 1779 1780 #define Validate_IMSLogon_OpenEntry( a1, a2, a3, a4, a5, a6, a7 ) \ 1781 ValidateParameters7( IMSLogon_OpenEntry, a1, a2, a3, a4, a5, a6, a7 ) 1782 #define UlValidate_IMSLogon_OpenEntry( a1, a2, a3, a4, a5, a6, a7 ) \ 1783 UlValidateParameters7( IMSLogon_OpenEntry, a1, a2, a3, a4, a5, a6, a7 ) 1784 #define CheckParameters_IMSLogon_OpenEntry( a1, a2, a3, a4, a5, a6, a7 ) \ 1785 CheckParameters7( IMSLogon_OpenEntry, a1, a2, a3, a4, a5, a6, a7 ) 1786 1787 #define Validate_IMSLogon_CompareEntryIDs( a1, a2, a3, a4, a5, a6, a7 ) \ 1788 ValidateParameters7( IMSLogon_CompareEntryIDs, a1, a2, a3, a4, a5, a6, a7 ) 1789 #define UlValidate_IMSLogon_CompareEntryIDs( a1, a2, a3, a4, a5, a6, a7 ) \ 1790 UlValidateParameters7( IMSLogon_CompareEntryIDs, a1, a2, a3, a4, a5, a6, a7 ) 1791 #define CheckParameters_IMSLogon_CompareEntryIDs( a1, a2, a3, a4, a5, a6, a7 ) \ 1792 CheckParameters7( IMSLogon_CompareEntryIDs, a1, a2, a3, a4, a5, a6, a7 ) 1793 1794 #define Validate_IMSLogon_Advise( a1, a2, a3, a4, a5, a6 ) \ 1795 ValidateParameters6( IMSLogon_Advise, a1, a2, a3, a4, a5, a6 ) 1796 #define UlValidate_IMSLogon_Advise( a1, a2, a3, a4, a5, a6 ) \ 1797 UlValidateParameters6( IMSLogon_Advise, a1, a2, a3, a4, a5, a6 ) 1798 #define CheckParameters_IMSLogon_Advise( a1, a2, a3, a4, a5, a6 ) \ 1799 CheckParameters6( IMSLogon_Advise, a1, a2, a3, a4, a5, a6 ) 1800 1801 #define Validate_IMSLogon_Unadvise( a1, a2 ) \ 1802 ValidateParameters2( IMSLogon_Unadvise, a1, a2 ) 1803 #define UlValidate_IMSLogon_Unadvise( a1, a2 ) \ 1804 UlValidateParameters2( IMSLogon_Unadvise, a1, a2 ) 1805 #define CheckParameters_IMSLogon_Unadvise( a1, a2 ) \ 1806 CheckParameters2( IMSLogon_Unadvise, a1, a2 ) 1807 1808 #define Validate_IMSLogon_OpenStatusEntry( a1, a2, a3, a4, a5 ) \ 1809 ValidateParameters5( IMSLogon_OpenStatusEntry, a1, a2, a3, a4, a5 ) 1810 #define UlValidate_IMSLogon_OpenStatusEntry( a1, a2, a3, a4, a5 ) \ 1811 UlValidateParameters5( IMSLogon_OpenStatusEntry, a1, a2, a3, a4, a5 ) 1812 #define CheckParameters_IMSLogon_OpenStatusEntry( a1, a2, a3, a4, a5 ) \ 1813 CheckParameters5( IMSLogon_OpenStatusEntry, a1, a2, a3, a4, a5 ) 1814 1815 1816 /* IMAPIControl */ 1817 1818 #define Validate_IMAPIControl_GetLastError( a1, a2, a3, a4 ) \ 1819 ValidateParameters4( IMAPIControl_GetLastError, a1, a2, a3, a4 ) 1820 #define UlValidate_IMAPIControl_GetLastError( a1, a2, a3, a4 ) \ 1821 UlValidateParameters4( IMAPIControl_GetLastError, a1, a2, a3, a4 ) 1822 #define CheckParameters_IMAPIControl_GetLastError( a1, a2, a3, a4 ) \ 1823 CheckParameters4( IMAPIControl_GetLastError, a1, a2, a3, a4 ) 1824 1825 #define Validate_IMAPIControl_Activate( a1, a2, a3 ) \ 1826 ValidateParameters3( IMAPIControl_Activate, a1, a2, a3 ) 1827 #define UlValidate_IMAPIControl_Activate( a1, a2, a3 ) \ 1828 UlValidateParameters3( IMAPIControl_Activate, a1, a2, a3 ) 1829 #define CheckParameters_IMAPIControl_Activate( a1, a2, a3 ) \ 1830 CheckParameters3( IMAPIControl_Activate, a1, a2, a3 ) 1831 1832 #define Validate_IMAPIControl_GetState( a1, a2, a3 ) \ 1833 ValidateParameters3( IMAPIControl_GetState, a1, a2, a3 ) 1834 #define UlValidate_IMAPIControl_GetState( a1, a2, a3 ) \ 1835 UlValidateParameters3( IMAPIControl_GetState, a1, a2, a3 ) 1836 #define CheckParameters_IMAPIControl_GetState( a1, a2, a3 ) \ 1837 CheckParameters3( IMAPIControl_GetState, a1, a2, a3 ) 1838 1839 1840 /* IMAPIStatus */ 1841 1842 #define Validate_IMAPIStatus_ValidateState( a1, a2, a3 ) \ 1843 ValidateParameters3( IMAPIStatus_ValidateState, a1, a2, a3 ) 1844 #define UlValidate_IMAPIStatus_ValidateState( a1, a2, a3 ) \ 1845 UlValidateParameters3( IMAPIStatus_ValidateState, a1, a2, a3 ) 1846 #define CheckParameters_IMAPIStatus_ValidateState( a1, a2, a3 ) \ 1847 CheckParameters3( IMAPIStatus_ValidateState, a1, a2, a3 ) 1848 1849 #define Validate_IMAPIStatus_SettingsDialog( a1, a2, a3 ) \ 1850 ValidateParameters3( IMAPIStatus_SettingsDialog, a1, a2, a3 ) 1851 #define UlValidate_IMAPIStatus_SettingsDialog( a1, a2, a3 ) \ 1852 UlValidateParameters3( IMAPIStatus_SettingsDialog, a1, a2, a3 ) 1853 #define CheckParameters_IMAPIStatus_SettingsDialog( a1, a2, a3 ) \ 1854 CheckParameters3( IMAPIStatus_SettingsDialog, a1, a2, a3 ) 1855 1856 #define Validate_IMAPIStatus_ChangePassword( a1, a2, a3, a4 ) \ 1857 ValidateParameters4( IMAPIStatus_ChangePassword, a1, a2, a3, a4 ) 1858 #define UlValidate_IMAPIStatus_ChangePassword( a1, a2, a3, a4 ) \ 1859 UlValidateParameters4( IMAPIStatus_ChangePassword, a1, a2, a3, a4 ) 1860 #define CheckParameters_IMAPIStatus_ChangePassword( a1, a2, a3, a4 ) \ 1861 CheckParameters4( IMAPIStatus_ChangePassword, a1, a2, a3, a4 ) 1862 1863 #define Validate_IMAPIStatus_FlushQueues( a1, a2, a3, a4, a5 ) \ 1864 ValidateParameters5( IMAPIStatus_FlushQueues, a1, a2, a3, a4, a5 ) 1865 #define UlValidate_IMAPIStatus_FlushQueues( a1, a2, a3, a4, a5 ) \ 1866 UlValidateParameters5( IMAPIStatus_FlushQueues, a1, a2, a3, a4, a5 ) 1867 #define CheckParameters_IMAPIStatus_FlushQueues( a1, a2, a3, a4, a5 ) \ 1868 CheckParameters5( IMAPIStatus_FlushQueues, a1, a2, a3, a4, a5 ) 1869 1870 1871 /* IStream */ 1872 1873 #define Validate_IStream_Read( a1, a2, a3, a4 ) \ 1874 ValidateParameters4( IStream__Read, a1, a2, a3, a4 ) 1875 #define UlValidate_IStream_Read( a1, a2, a3, a4 ) \ 1876 UlValidateParameters4( IStream__Read, a1, a2, a3, a4 ) 1877 #define CheckParameters_IStream_Read( a1, a2, a3, a4 ) \ 1878 CheckParameters4( IStream__Read, a1, a2, a3, a4 ) 1879 1880 #define Validate_IStream_Write( a1, a2, a3, a4 ) \ 1881 ValidateParameters4( IStream__Write, a1, a2, a3, a4 ) 1882 #define UlValidate_IStream_Write( a1, a2, a3, a4 ) \ 1883 UlValidateParameters4( IStream__Write, a1, a2, a3, a4 ) 1884 #define CheckParameters_IStream_Write( a1, a2, a3, a4 ) \ 1885 CheckParameters4( IStream__Write, a1, a2, a3, a4 ) 1886 1887 #define Validate_IStream_Seek( a1, a2, a3, a4 ) \ 1888 ValidateParameters4( IStream_Seek, a1, a2, a3, a4 ) 1889 #define UlValidate_IStream_Seek( a1, a2, a3, a4 ) \ 1890 UlValidateParameters4( IStream_Seek, a1, a2, a3, a4 ) 1891 #define CheckParameters_IStream_Seek( a1, a2, a3, a4 ) \ 1892 CheckParameters4( IStream_Seek, a1, a2, a3, a4 ) 1893 1894 #define Validate_IStream_SetSize( a1, a2 ) \ 1895 ValidateParameters2( IStream_SetSize, a1, a2 ) 1896 #define UlValidate_IStream_SetSize( a1, a2 ) \ 1897 UlValidateParameters2( IStream_SetSize, a1, a2 ) 1898 #define CheckParameters_IStream_SetSize( a1, a2 ) \ 1899 CheckParameters2( IStream_SetSize, a1, a2 ) 1900 1901 #define Validate_IStream_CopyTo( a1, a2, a3, a4, a5 ) \ 1902 ValidateParameters5( IStream_CopyTo, a1, a2, a3, a4, a5 ) 1903 #define UlValidate_IStream_CopyTo( a1, a2, a3, a4, a5 ) \ 1904 UlValidateParameters5( IStream_CopyTo, a1, a2, a3, a4, a5 ) 1905 #define CheckParameters_IStream_CopyTo( a1, a2, a3, a4, a5 ) \ 1906 CheckParameters5( IStream_CopyTo, a1, a2, a3, a4, a5 ) 1907 1908 #define Validate_IStream_Commit( a1, a2 ) \ 1909 ValidateParameters2( IStream_Commit, a1, a2 ) 1910 #define UlValidate_IStream_Commit( a1, a2 ) \ 1911 UlValidateParameters2( IStream_Commit, a1, a2 ) 1912 #define CheckParameters_IStream_Commit( a1, a2 ) \ 1913 CheckParameters2( IStream_Commit, a1, a2 ) 1914 1915 #define Validate_IStream_Revert( a1 ) \ 1916 ValidateParameters1( IStream_Revert, a1 ) 1917 #define UlValidate_IStream_Revert( a1 ) \ 1918 UlValidateParameters1( IStream_Revert, a1 ) 1919 #define CheckParameters_IStream_Revert( a1 ) \ 1920 CheckParameters1( IStream_Revert, a1 ) 1921 1922 #define Validate_IStream_LockRegion( a1, a2, a3, a4 ) \ 1923 ValidateParameters4( IStream_LockRegion, a1, a2, a3, a4 ) 1924 #define UlValidate_IStream_LockRegion( a1, a2, a3, a4 ) \ 1925 UlValidateParameters4( IStream_LockRegion, a1, a2, a3, a4 ) 1926 #define CheckParameters_IStream_LockRegion( a1, a2, a3, a4 ) \ 1927 CheckParameters4( IStream_LockRegion, a1, a2, a3, a4 ) 1928 1929 #define Validate_IStream_UnlockRegion( a1, a2, a3, a4 ) \ 1930 ValidateParameters4( IStream_UnlockRegion, a1, a2, a3, a4 ) 1931 #define UlValidate_IStream_UnlockRegion( a1, a2, a3, a4 ) \ 1932 UlValidateParameters4( IStream_UnlockRegion, a1, a2, a3, a4 ) 1933 #define CheckParameters_IStream_UnlockRegion( a1, a2, a3, a4 ) \ 1934 CheckParameters4( IStream_UnlockRegion, a1, a2, a3, a4 ) 1935 1936 #define Validate_IStream_Stat( a1, a2, a3 ) \ 1937 ValidateParameters3( IStream_Stat, a1, a2, a3 ) 1938 #define UlValidate_IStream_Stat( a1, a2, a3 ) \ 1939 UlValidateParameters3( IStream_Stat, a1, a2, a3 ) 1940 #define CheckParameters_IStream_Stat( a1, a2, a3 ) \ 1941 CheckParameters3( IStream_Stat, a1, a2, a3 ) 1942 1943 #define Validate_IStream_Clone( a1, a2 ) \ 1944 ValidateParameters2( IStream_Clone, a1, a2 ) 1945 #define UlValidate_IStream_Clone( a1, a2 ) \ 1946 UlValidateParameters2( IStream_Clone, a1, a2 ) 1947 #define CheckParameters_IStream_Clone( a1, a2 ) \ 1948 CheckParameters2( IStream_Clone, a1, a2 ) 1949 1950 1951 /* IMAPIAdviseSink */ 1952 1953 #define Validate_IMAPIAdviseSink_OnNotify( a1, a2, a3 ) \ 1954 ValidateParameters3( IMAPIAdviseSink_OnNotify, a1, a2, a3 ) 1955 #define UlValidate_IMAPIAdviseSink_OnNotify( a1, a2, a3 ) \ 1956 UlValidateParameters3( IMAPIAdviseSink_OnNotify, a1, a2, a3 ) 1957 #define CheckParameters_IMAPIAdviseSink_OnNotify( a1, a2, a3 ) \ 1958 CheckParameters3( IMAPIAdviseSink_OnNotify, a1, a2, a3 ) 1959 1960 #if defined(_AMD64_) || defined(_X86_) 1961 STDAPI HrValidateParameters( METHODS eMethod, LPVOID FAR *ppFirstArg ); 1962 #elif defined(DOS) || defined(_MAC) 1963 STDAPIV HrValidateParametersV( METHODS eMethod, ... ); 1964 STDAPIV HrValidateParametersValist( METHODS eMethod, va_list arglist ); 1965 #else 1966 #error "Unknown Platform: MAPI is currently supported on Win32 and Win64" 1967 #endif 1968 1969 #ifdef __cplusplus 1970 } 1971 #endif 1972 1973 #endif /* _INC_VALIDATE */ 1974 1975 1976