00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include "wglGraphicsWindow.h"
00020 #include "config_wgldisplay.h"
00021 #include "config_windisplay.h"
00022 #include "wglGraphicsPipe.h"
00023 #include "glGraphicsStateGuardian.h"
00024
00025 #include <wingdi.h>
00026 #include <ddraw.h>
00027
00028 TypeHandle wglGraphicsWindow::_type_handle;
00029
00030 static char *ConvDDErrorToString(const HRESULT &error);
00031
00032
00033 #define MY_DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
00034 EXTERN_C const GUID DECLSPEC_SELECTANY name \
00035 = { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } }
00036
00037 MY_DEFINE_GUID(IID_IDirectDraw2, 0xB3A6F3E0,0x2B43,0x11CF,0xA2,0xDE,0x00,0xAA,0x00,0xB9,0x33,0x56);
00038
00039
00040
00041
00042
00043 static DWORD
00044 GetAvailVidMem() {
00045 LPDIRECTDRAW2 pDD2;
00046 LPDIRECTDRAW pDD;
00047 HRESULT hr;
00048
00049 typedef HRESULT (WINAPI *DIRECTDRAWCREATEPROC)(GUID FAR *lpGUID,LPDIRECTDRAW FAR *lplpDD,IUnknown FAR *pUnkOuter);
00050 DIRECTDRAWCREATEPROC pfnDDCreate=NULL;
00051
00052 HINSTANCE DDHinst = LoadLibrary("ddraw.dll");
00053 if (DDHinst == 0) {
00054 wgldisplay_cat.fatal() << "LoadLibrary() can't find DDRAW.DLL!" << endl;
00055 return 0x7FFFFFFF;
00056 }
00057
00058 pfnDDCreate = (DIRECTDRAWCREATEPROC) GetProcAddress(DDHinst, "DirectDrawCreate");
00059
00060
00061 if (NULL == pfnDDCreate) {
00062 wgldisplay_cat.fatal() << "GetProcAddress failed on DirectDrawCreate\n";
00063 FreeLibrary(DDHinst);
00064 return 0x7FFFFFFF;
00065 }
00066
00067
00068 hr = (*pfnDDCreate)((GUID *)DDCREATE_HARDWAREONLY, &pDD, NULL);
00069 if (hr != DD_OK) {
00070 wgldisplay_cat.fatal()
00071 << "DirectDrawCreate failed : result = " << ConvDDErrorToString(hr)
00072 << endl;
00073 FreeLibrary(DDHinst);
00074 return 0x7FFFFFFF;
00075 }
00076
00077 FreeLibrary(DDHinst);
00078
00079
00080 hr = pDD->QueryInterface(IID_IDirectDraw2, (LPVOID *)&pDD2);
00081 pDD->Release();
00082
00083 if (hr != DD_OK) {
00084 wgldisplay_cat.fatal()
00085 << "DDraw QueryInterface failed : result = " << ConvDDErrorToString(hr)
00086 << endl;
00087 return 0x7FFFFFFF;
00088 }
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099 DDSCAPS ddsCaps;
00100 DWORD dwTotal,dwFree;
00101 ZeroMemory(&ddsCaps,sizeof(DDSCAPS));
00102 ddsCaps.dwCaps = DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM;
00103 if (FAILED(hr = pDD2->GetAvailableVidMem(&ddsCaps,&dwTotal,&dwFree))) {
00104 if (hr==DDERR_NODIRECTDRAWHW) {
00105 wgldisplay_cat.info() << "GetAvailableVidMem returns no-DDraw HW, assuming we have plenty of vidmem\n";
00106 dwTotal=dwFree=0x7FFFFFFF;
00107 } else {
00108 wgldisplay_cat.fatal() << "GetAvailableVidMem failed : result = " << ConvDDErrorToString(hr) << endl;
00109 dwTotal=dwFree=0x7FFFFFFF;
00110 }
00111 } else {
00112 if (wgldisplay_cat.is_debug()) {
00113 wgldisplay_cat.info() << "before FullScreen switch: GetAvailableVidMem returns Total: " << dwTotal/1000000.0 << " Free: " << dwFree/1000000.0 << endl;
00114 }
00115
00116 if (dwTotal==0) {
00117 wgldisplay_cat.info() << "GetAvailVidMem returns bogus total of 0, assuming we have plenty of vidmem\n";
00118 dwTotal=dwFree=0x7FFFFFFF;
00119 }
00120 }
00121
00122 pDD2->Release();
00123 return dwFree;
00124 }
00125
00126
00127
00128
00129
00130
00131 wglGraphicsWindow::
00132 wglGraphicsWindow(GraphicsPipe *pipe, GraphicsStateGuardian *gsg) :
00133 WinGraphicsWindow(pipe, gsg)
00134 {
00135 _hdc = (HDC)0;
00136 }
00137
00138
00139
00140
00141
00142
00143 wglGraphicsWindow::
00144 ~wglGraphicsWindow() {
00145 }
00146
00147
00148
00149
00150
00151
00152
00153
00154 void wglGraphicsWindow::
00155 make_current() {
00156 wglGraphicsStateGuardian *wglgsg;
00157 DCAST_INTO_V(wglgsg, _gsg);
00158 wglMakeCurrent(_hdc, wglgsg->get_context(_hdc));
00159
00160
00161
00162
00163
00164 wglgsg->reset_if_new();
00165 }
00166
00167
00168
00169
00170
00171
00172
00173
00174
00175
00176 void wglGraphicsWindow::
00177 release_gsg() {
00178 wglMakeCurrent(_hdc, NULL);
00179 GraphicsWindow::release_gsg();
00180 }
00181
00182
00183
00184
00185
00186
00187
00188
00189
00190
00191
00192
00193
00194
00195
00196 void wglGraphicsWindow::
00197 begin_flip() {
00198 if (_gsg != (GraphicsStateGuardian *)NULL) {
00199 make_current();
00200 glFinish();
00201 SwapBuffers(_hdc);
00202 }
00203 }
00204
00205
00206
00207
00208
00209
00210
00211 void wglGraphicsWindow::
00212 close_window() {
00213 ReleaseDC(_hWnd, _hdc);
00214 _hdc = (HDC)0;
00215 WinGraphicsWindow::close_window();
00216 }
00217
00218
00219
00220
00221
00222
00223
00224
00225 bool wglGraphicsWindow::
00226 open_window() {
00227 if (!WinGraphicsWindow::open_window()) {
00228 return false;
00229 }
00230
00231 wglGraphicsStateGuardian *wglgsg;
00232 DCAST_INTO_R(wglgsg, _gsg, false);
00233
00234 _hdc = GetDC(_hWnd);
00235
00236
00237 int pfnum = wglgsg->get_pfnum();
00238
00239 PIXELFORMATDESCRIPTOR pixelformat;
00240 DescribePixelFormat(_hdc, pfnum, sizeof(PIXELFORMATDESCRIPTOR),
00241 &pixelformat);
00242
00243 #ifdef _DEBUG
00244 char msg[200];
00245 sprintf(msg, "Selected GL PixelFormat is #%d", pfnum);
00246 print_pfd(&pixelformat, msg);
00247 #endif
00248
00249 if (!SetPixelFormat(_hdc, pfnum, &pixelformat)) {
00250 wgldisplay_cat.error()
00251 << "SetPixelFormat(" << pfnum << ") failed after window create\n";
00252 close_window();
00253 return false;
00254 }
00255
00256 #ifndef NDEBUG
00257 if (gl_force_invalid) {
00258 wgldisplay_cat.error()
00259 << "Artificially failing window.\n";
00260 close_window();
00261 return false;
00262 }
00263 #endif // NDEBUG
00264
00265
00266 setup_colormap(pixelformat);
00267
00268 return true;
00269 }
00270
00271
00272
00273
00274
00275
00276
00277
00278 void wglGraphicsWindow::
00279 reconsider_fullscreen_size(DWORD &x_size, DWORD &y_size, DWORD &bitdepth) {
00280
00281
00282
00283
00284
00285
00286
00287
00288
00289
00290
00291
00292 #define LOWVIDMEMTHRESHOLD 3500000
00293 if (gl_do_vidmemsize_check && (GetAvailVidMem() < LOWVIDMEMTHRESHOLD)) {
00294
00295 wgldisplay_cat.info()
00296 << "low video memory card detected, insisting on 640x480x16.\n";
00297
00298 x_size = 640;
00299 y_size = 480;
00300 bitdepth = 16;
00301 }
00302 }
00303
00304
00305
00306
00307
00308
00309
00310
00311 void wglGraphicsWindow::
00312 setup_colormap(const PIXELFORMATDESCRIPTOR &pixelformat) {
00313 LOGPALETTE *logical;
00314 int n;
00315
00316 if (!(pixelformat.dwFlags & PFD_NEED_PALETTE ||
00317 pixelformat.iPixelType == PFD_TYPE_COLORINDEX))
00318 return;
00319
00320 n = 1 << pixelformat.cColorBits;
00321
00322
00323
00324 logical = (LOGPALETTE*)malloc(sizeof(LOGPALETTE) +
00325 sizeof(PALETTEENTRY) * n);
00326 memset(logical, 0, sizeof(LOGPALETTE) + sizeof(PALETTEENTRY) * n);
00327
00328
00329 logical->palVersion = 0x300;
00330 logical->palNumEntries = n;
00331
00332
00333 GetSystemPaletteEntries(_hdc, 0, 256, &logical->palPalEntry[0]);
00334
00335 if (pixelformat.iPixelType == PFD_TYPE_RGBA) {
00336 int redMask = (1 << pixelformat.cRedBits) - 1;
00337 int greenMask = (1 << pixelformat.cGreenBits) - 1;
00338 int blueMask = (1 << pixelformat.cBlueBits) - 1;
00339 int i;
00340
00341
00342 for (i = 0; i < n; ++i) {
00343 logical->palPalEntry[i].peRed =
00344 (((i >> pixelformat.cRedShift) & redMask) * 255) / redMask;
00345 logical->palPalEntry[i].peGreen =
00346 (((i >> pixelformat.cGreenShift) & greenMask) * 255) / greenMask;
00347 logical->palPalEntry[i].peBlue =
00348 (((i >> pixelformat.cBlueShift) & blueMask) * 255) / blueMask;
00349 logical->palPalEntry[i].peFlags = 0;
00350 }
00351 }
00352
00353 _colormap = CreatePalette(logical);
00354 free(logical);
00355
00356 SelectPalette(_hdc, _colormap, FALSE);
00357 RealizePalette(_hdc);
00358 }
00359
00360 #ifdef _DEBUG
00361
00362
00363
00364
00365
00366
00367 void wglGraphicsWindow::
00368 print_pfd(PIXELFORMATDESCRIPTOR *pfd, char *msg) {
00369 OGLDriverType drvtype;
00370 if ((pfd->dwFlags & PFD_GENERIC_ACCELERATED) &&
00371 (pfd->dwFlags & PFD_GENERIC_FORMAT)) {
00372 drvtype=MCD;
00373 } else if (!(pfd->dwFlags & PFD_GENERIC_ACCELERATED) && !(pfd->dwFlags & PFD_GENERIC_FORMAT)) {
00374 drvtype=ICD;
00375 } else {
00376 drvtype=Software;
00377 }
00378
00379 #define PRINT_FLAG(FLG) ((pfd->dwFlags & PFD_##FLG) ? (" PFD_" #FLG "|") : "")
00380 wgldisplay_cat.spam()
00381 << "================================\n";
00382
00383 wgldisplay_cat.spam()
00384 << msg << ", " << OGLDrvStrings[drvtype] << " driver\n"
00385 << "PFD flags: 0x" << (void*)pfd->dwFlags << " ("
00386 << PRINT_FLAG(GENERIC_ACCELERATED)
00387 << PRINT_FLAG(GENERIC_FORMAT)
00388 << PRINT_FLAG(DOUBLEBUFFER)
00389 << PRINT_FLAG(SUPPORT_OPENGL)
00390 << PRINT_FLAG(SUPPORT_GDI)
00391 << PRINT_FLAG(STEREO)
00392 << PRINT_FLAG(DRAW_TO_WINDOW)
00393 << PRINT_FLAG(DRAW_TO_BITMAP)
00394 << PRINT_FLAG(SWAP_EXCHANGE)
00395 << PRINT_FLAG(SWAP_COPY)
00396 << PRINT_FLAG(SWAP_LAYER_BUFFERS)
00397 << PRINT_FLAG(NEED_PALETTE)
00398 << PRINT_FLAG(NEED_SYSTEM_PALETTE)
00399 << PRINT_FLAG(SUPPORT_DIRECTDRAW) << ")\n"
00400 << "PFD iPixelType: "
00401 << ((pfd->iPixelType==PFD_TYPE_RGBA) ? "PFD_TYPE_RGBA":"PFD_TYPE_COLORINDEX")
00402 << endl
00403 << "PFD cColorBits: " << (DWORD)pfd->cColorBits
00404 << " R: " << (DWORD)pfd->cRedBits
00405 <<" G: " << (DWORD)pfd->cGreenBits
00406 <<" B: " << (DWORD)pfd->cBlueBits << endl
00407 << "PFD cAlphaBits: " << (DWORD)pfd->cAlphaBits
00408 << " DepthBits: " << (DWORD)pfd->cDepthBits
00409 <<" StencilBits: " << (DWORD)pfd->cStencilBits
00410 <<" AccumBits: " << (DWORD)pfd->cAccumBits
00411 << endl;
00412 }
00413 #endif
00414
00415
00416 static char *
00417 ConvDDErrorToString(const HRESULT &error) {
00418 switch(error) {
00419 case E_FAIL:
00420 return "Unspecified error E_FAIL";
00421
00422 case DD_OK:
00423 return "No error.\0";
00424
00425 case DDERR_ALREADYINITIALIZED :
00426 return "DDERR_ALREADYINITIALIZED ";
00427 case DDERR_CANNOTATTACHSURFACE :
00428 return "DDERR_CANNOTATTACHSURFACE ";
00429 case DDERR_CANNOTDETACHSURFACE :
00430 return "DDERR_CANNOTDETACHSURFACE ";
00431 case DDERR_CURRENTLYNOTAVAIL :
00432 return "DDERR_CURRENTLYNOTAVAIL ";
00433 case DDERR_EXCEPTION :
00434 return "DDERR_EXCEPTION ";
00435 case DDERR_HEIGHTALIGN :
00436 return "DDERR_HEIGHTALIGN ";
00437 case DDERR_INCOMPATIBLEPRIMARY :
00438 return "DDERR_INCOMPATIBLEPRIMARY ";
00439 case DDERR_INVALIDCAPS :
00440 return "DDERR_INVALIDCAPS ";
00441 case DDERR_INVALIDCLIPLIST :
00442 return "DDERR_INVALIDCLIPLIST ";
00443 case DDERR_INVALIDMODE :
00444 return "DDERR_INVALIDMODE ";
00445 case DDERR_INVALIDOBJECT :
00446 return "DDERR_INVALIDOBJECT ";
00447 case DDERR_INVALIDPIXELFORMAT :
00448 return "DDERR_INVALIDPIXELFORMAT ";
00449 case DDERR_INVALIDRECT :
00450 return "DDERR_INVALIDRECT ";
00451 case DDERR_LOCKEDSURFACES :
00452 return "DDERR_LOCKEDSURFACES ";
00453 case DDERR_NO3D :
00454 return "DDERR_NO3D ";
00455 case DDERR_NOALPHAHW :
00456 return "DDERR_NOALPHAHW ";
00457 case DDERR_NOCLIPLIST :
00458 return "DDERR_NOCLIPLIST ";
00459 case DDERR_NOCOLORCONVHW :
00460 return "DDERR_NOCOLORCONVHW ";
00461 case DDERR_NOCOOPERATIVELEVELSET :
00462 return "DDERR_NOCOOPERATIVELEVELSET ";
00463 case DDERR_NOCOLORKEY :
00464 return "DDERR_NOCOLORKEY ";
00465 case DDERR_NOCOLORKEYHW :
00466 return "DDERR_NOCOLORKEYHW ";
00467 case DDERR_NODIRECTDRAWSUPPORT :
00468 return "DDERR_NODIRECTDRAWSUPPORT ";
00469 case DDERR_NOEXCLUSIVEMODE :
00470 return "DDERR_NOEXCLUSIVEMODE ";
00471 case DDERR_NOFLIPHW :
00472 return "DDERR_NOFLIPHW ";
00473 case DDERR_NOGDI :
00474 return "DDERR_NOGDI ";
00475 case DDERR_NOMIRRORHW :
00476 return "DDERR_NOMIRRORHW ";
00477 case DDERR_NOTFOUND :
00478 return "DDERR_NOTFOUND ";
00479 case DDERR_NOOVERLAYHW :
00480 return "DDERR_NOOVERLAYHW ";
00481 case DDERR_NORASTEROPHW :
00482 return "DDERR_NORASTEROPHW ";
00483 case DDERR_NOROTATIONHW :
00484 return "DDERR_NOROTATIONHW ";
00485 case DDERR_NOSTRETCHHW :
00486 return "DDERR_NOSTRETCHHW ";
00487 case DDERR_NOT4BITCOLOR :
00488 return "DDERR_NOT4BITCOLOR ";
00489 case DDERR_NOT4BITCOLORINDEX :
00490 return "DDERR_NOT4BITCOLORINDEX ";
00491 case DDERR_NOT8BITCOLOR :
00492 return "DDERR_NOT8BITCOLOR ";
00493 case DDERR_NOTEXTUREHW :
00494 return "DDERR_NOTEXTUREHW ";
00495 case DDERR_NOVSYNCHW :
00496 return "DDERR_NOVSYNCHW ";
00497 case DDERR_NOZBUFFERHW :
00498 return "DDERR_NOZBUFFERHW ";
00499 case DDERR_NOZOVERLAYHW :
00500 return "DDERR_NOZOVERLAYHW ";
00501 case DDERR_OUTOFCAPS :
00502 return "DDERR_OUTOFCAPS ";
00503 case DDERR_OUTOFVIDEOMEMORY :
00504 return "DDERR_OUTOFVIDEOMEMORY ";
00505 case DDERR_OVERLAYCANTCLIP :
00506 return "DDERR_OVERLAYCANTCLIP ";
00507 case DDERR_OVERLAYCOLORKEYONLYONEACTIVE :
00508 return "DDERR_OVERLAYCOLORKEYONLYONEACTIVE ";
00509 case DDERR_PALETTEBUSY :
00510 return "DDERR_PALETTEBUSY ";
00511 case DDERR_COLORKEYNOTSET :
00512 return "DDERR_COLORKEYNOTSET ";
00513 case DDERR_SURFACEALREADYATTACHED :
00514 return "DDERR_SURFACEALREADYATTACHED ";
00515 case DDERR_SURFACEALREADYDEPENDENT :
00516 return "DDERR_SURFACEALREADYDEPENDENT ";
00517 case DDERR_SURFACEBUSY :
00518 return "DDERR_SURFACEBUSY ";
00519 case DDERR_CANTLOCKSURFACE :
00520 return "DDERR_CANTLOCKSURFACE";
00521 case DDERR_SURFACEISOBSCURED :
00522 return "DDERR_SURFACEISOBSCURED ";
00523 case DDERR_SURFACELOST :
00524 return "DDERR_SURFACELOST ";
00525 case DDERR_SURFACENOTATTACHED :
00526 return "DDERR_SURFACENOTATTACHED ";
00527 case DDERR_TOOBIGHEIGHT :
00528 return "DDERR_TOOBIGHEIGHT ";
00529 case DDERR_TOOBIGSIZE :
00530 return "DDERR_TOOBIGSIZE ";
00531 case DDERR_TOOBIGWIDTH :
00532 return "DDERR_TOOBIGWIDTH ";
00533 case DDERR_UNSUPPORTEDFORMAT :
00534 return "DDERR_UNSUPPORTEDFORMAT ";
00535 case DDERR_UNSUPPORTEDMASK :
00536 return "DDERR_UNSUPPORTEDMASK ";
00537 case DDERR_VERTICALBLANKINPROGRESS :
00538 return "DDERR_VERTICALBLANKINPROGRESS ";
00539 case DDERR_WASSTILLDRAWING :
00540 return "DDERR_WASSTILLDRAWING ";
00541 case DDERR_XALIGN :
00542 return "DDERR_XALIGN ";
00543 case DDERR_INVALIDDIRECTDRAWGUID :
00544 return "DDERR_INVALIDDIRECTDRAWGUID ";
00545 case DDERR_DIRECTDRAWALREADYCREATED :
00546 return "DDERR_DIRECTDRAWALREADYCREATED ";
00547 case DDERR_NODIRECTDRAWHW :
00548 return "DDERR_NODIRECTDRAWHW ";
00549 case DDERR_PRIMARYSURFACEALREADYEXISTS :
00550 return "DDERR_PRIMARYSURFACEALREADYEXISTS ";
00551 case DDERR_NOEMULATION :
00552 return "DDERR_NOEMULATION ";
00553 case DDERR_REGIONTOOSMALL :
00554 return "DDERR_REGIONTOOSMALL ";
00555 case DDERR_CLIPPERISUSINGHWND :
00556 return "DDERR_CLIPPERISUSINGHWND ";
00557 case DDERR_NOCLIPPERATTACHED :
00558 return "DDERR_NOCLIPPERATTACHED ";
00559 case DDERR_NOHWND :
00560 return "DDERR_NOHWND ";
00561 case DDERR_HWNDSUBCLASSED :
00562 return "DDERR_HWNDSUBCLASSED ";
00563 case DDERR_HWNDALREADYSET :
00564 return "DDERR_HWNDALREADYSET ";
00565 case DDERR_NOPALETTEATTACHED :
00566 return "DDERR_NOPALETTEATTACHED ";
00567 case DDERR_NOPALETTEHW :
00568 return "DDERR_NOPALETTEHW ";
00569 case DDERR_BLTFASTCANTCLIP :
00570 return "DDERR_BLTFASTCANTCLIP ";
00571 case DDERR_NOBLTHW :
00572 return "DDERR_NOBLTHW ";
00573 case DDERR_NODDROPSHW :
00574 return "DDERR_NODDROPSHW ";
00575 case DDERR_OVERLAYNOTVISIBLE :
00576 return "DDERR_OVERLAYNOTVISIBLE ";
00577 case DDERR_NOOVERLAYDEST :
00578 return "DDERR_NOOVERLAYDEST ";
00579 case DDERR_INVALIDPOSITION :
00580 return "DDERR_INVALIDPOSITION ";
00581 case DDERR_NOTAOVERLAYSURFACE :
00582 return "DDERR_NOTAOVERLAYSURFACE ";
00583 case DDERR_EXCLUSIVEMODEALREADYSET :
00584 return "DDERR_EXCLUSIVEMODEALREADYSET ";
00585 case DDERR_NOTFLIPPABLE :
00586 return "DDERR_NOTFLIPPABLE ";
00587 case DDERR_CANTDUPLICATE :
00588 return "DDERR_CANTDUPLICATE ";
00589 case DDERR_NOTLOCKED :
00590 return "DDERR_NOTLOCKED ";
00591 case DDERR_CANTCREATEDC :
00592 return "DDERR_CANTCREATEDC ";
00593 case DDERR_NODC :
00594 return "DDERR_NODC ";
00595 case DDERR_WRONGMODE :
00596 return "DDERR_WRONGMODE ";
00597 case DDERR_IMPLICITLYCREATED :
00598 return "DDERR_IMPLICITLYCREATED ";
00599 case DDERR_NOTPALETTIZED :
00600 return "DDERR_NOTPALETTIZED ";
00601 case DDERR_UNSUPPORTEDMODE :
00602 return "DDERR_UNSUPPORTEDMODE ";
00603 case DDERR_NOMIPMAPHW :
00604 return "DDERR_NOMIPMAPHW ";
00605 case DDERR_INVALIDSURFACETYPE :
00606 return "DDERR_INVALIDSURFACETYPE";
00607 case DDERR_NOOPTIMIZEHW :
00608 return "DDERR_NOOPTIMIZEHW";
00609 case DDERR_NOTLOADED :
00610 return "DDERR_NOTLOADED";
00611 case DDERR_NOFOCUSWINDOW :
00612 return "DDERR_NOFOCUSWINDOW";
00613 case DDERR_DCALREADYCREATED :
00614 return "DDERR_DCALREADYCREATED ";
00615 case DDERR_NONONLOCALVIDMEM :
00616 return "DDERR_NONONLOCALVIDMEM";
00617 case DDERR_CANTPAGELOCK :
00618 return "DDERR_CANTPAGELOCK ";
00619 case DDERR_CANTPAGEUNLOCK :
00620 return "DDERR_CANTPAGEUNLOCK ";
00621 case DDERR_NOTPAGELOCKED :
00622 return "DDERR_NOTPAGELOCKED ";
00623 case DDERR_MOREDATA :
00624 return "DDERR_MOREDATA ";
00625 case DDERR_VIDEONOTACTIVE :
00626 return "DDERR_VIDEONOTACTIVE ";
00627 case DDERR_DEVICEDOESNTOWNSURFACE :
00628 return "DDERR_DEVICEDOESNTOWNSURFACE ";
00629
00630 case E_UNEXPECTED :
00631 return "E_UNEXPECTED ";
00632 case E_NOTIMPL :
00633 return "E_NOTIMPL ";
00634 case E_OUTOFMEMORY :
00635 return "E_OUTOFMEMORY ";
00636 case E_INVALIDARG :
00637 return "E_INVALIDARG or DDERR_INVALIDPARAMS";
00638 case E_NOINTERFACE :
00639 return "E_NOINTERFACE ";
00640 case E_POINTER :
00641 return "E_POINTER ";
00642 case E_HANDLE :
00643 return "E_HANDLE ";
00644 case E_ABORT :
00645 return "E_ABORT ";
00646
00647
00648 case E_ACCESSDENIED :
00649 return "E_ACCESSDENIED ";
00650 case E_PENDING :
00651 return "E_PENDING ";
00652 case CO_E_INIT_TLS :
00653 return "CO_E_INIT_TLS ";
00654 case CO_E_INIT_SHARED_ALLOCATOR :
00655 return "CO_E_INIT_SHARED_ALLOCATOR ";
00656 case CO_E_INIT_MEMORY_ALLOCATOR :
00657 return "CO_E_INIT_MEMORY_ALLOCATOR ";
00658 case CO_E_INIT_CLASS_CACHE :
00659 return "CO_E_INIT_CLASS_CACHE ";
00660 case CO_E_INIT_RPC_CHANNEL :
00661 return "CO_E_INIT_RPC_CHANNEL ";
00662 case CO_E_INIT_TLS_SET_CHANNEL_CONTROL :
00663 return "CO_E_INIT_TLS_SET_CHANNEL_CONTROL ";
00664 case CO_E_INIT_TLS_CHANNEL_CONTROL :
00665 return "CO_E_INIT_TLS_CHANNEL_CONTROL ";
00666 case CO_E_INIT_UNACCEPTED_USER_ALLOCATOR :
00667 return "CO_E_INIT_UNACCEPTED_USER_ALLOCATOR ";
00668 case CO_E_INIT_SCM_MUTEX_EXISTS :
00669 return "CO_E_INIT_SCM_MUTEX_EXISTS ";
00670 case CO_E_INIT_SCM_FILE_MAPPING_EXISTS :
00671 return "CO_E_INIT_SCM_FILE_MAPPING_EXISTS ";
00672 case CO_E_INIT_SCM_MAP_VIEW_OF_FILE :
00673 return "CO_E_INIT_SCM_MAP_VIEW_OF_FILE ";
00674 case CO_E_INIT_SCM_EXEC_FAILURE :
00675 return "CO_E_INIT_SCM_EXEC_FAILURE ";
00676 case CO_E_INIT_ONLY_SINGLE_THREADED :
00677 return "CO_E_INIT_ONLY_SINGLE_THREADED ";
00678 case CO_E_CANT_REMOTE :
00679 return "CO_E_CANT_REMOTE ";
00680 case CO_E_BAD_SERVER_NAME :
00681 return "CO_E_BAD_SERVER_NAME ";
00682 case CO_E_WRONG_SERVER_IDENTITY :
00683 return "CO_E_WRONG_SERVER_IDENTITY ";
00684 case CO_E_OLE1DDE_DISABLED :
00685 return "CO_E_OLE1DDE_DISABLED ";
00686 case CO_E_RUNAS_SYNTAX :
00687 return "CO_E_RUNAS_SYNTAX ";
00688 case CO_E_CREATEPROCESS_FAILURE :
00689 return "CO_E_CREATEPROCESS_FAILURE ";
00690 case CO_E_RUNAS_CREATEPROCESS_FAILURE :
00691 return "CO_E_RUNAS_CREATEPROCESS_FAILURE ";
00692 case CO_E_RUNAS_LOGON_FAILURE :
00693 return "CO_E_RUNAS_LOGON_FAILURE ";
00694 case CO_E_LAUNCH_PERMSSION_DENIED :
00695 return "CO_E_LAUNCH_PERMSSION_DENIED ";
00696 case CO_E_START_SERVICE_FAILURE :
00697 return "CO_E_START_SERVICE_FAILURE ";
00698 case CO_E_REMOTE_COMMUNICATION_FAILURE :
00699 return "CO_E_REMOTE_COMMUNICATION_FAILURE ";
00700 case CO_E_SERVER_START_TIMEOUT :
00701 return "CO_E_SERVER_START_TIMEOUT ";
00702 case CO_E_CLSREG_INCONSISTENT :
00703 return "CO_E_CLSREG_INCONSISTENT ";
00704 case CO_E_IIDREG_INCONSISTENT :
00705 return "CO_E_IIDREG_INCONSISTENT ";
00706 case CO_E_NOT_SUPPORTED :
00707 return "CO_E_NOT_SUPPORTED ";
00708 case CO_E_RELOAD_DLL :
00709 return "CO_E_RELOAD_DLL ";
00710 case CO_E_MSI_ERROR :
00711 return "CO_E_MSI_ERROR ";
00712 case OLE_E_OLEVERB :
00713 return "OLE_E_OLEVERB ";
00714 case OLE_E_ADVF :
00715 return "OLE_E_ADVF ";
00716 case OLE_E_ENUM_NOMORE :
00717 return "OLE_E_ENUM_NOMORE ";
00718 case OLE_E_ADVISENOTSUPPORTED :
00719 return "OLE_E_ADVISENOTSUPPORTED ";
00720 case OLE_E_NOCONNECTION :
00721 return "OLE_E_NOCONNECTION ";
00722 case OLE_E_NOTRUNNING :
00723 return "OLE_E_NOTRUNNING ";
00724 case OLE_E_NOCACHE :
00725 return "OLE_E_NOCACHE ";
00726 case OLE_E_BLANK :
00727 return "OLE_E_BLANK ";
00728 case OLE_E_CLASSDIFF :
00729 return "OLE_E_CLASSDIFF ";
00730 case OLE_E_CANT_GETMONIKER :
00731 return "OLE_E_CANT_GETMONIKER ";
00732 case OLE_E_CANT_BINDTOSOURCE :
00733 return "OLE_E_CANT_BINDTOSOURCE ";
00734 case OLE_E_STATIC :
00735 return "OLE_E_STATIC ";
00736 case OLE_E_PROMPTSAVECANCELLED :
00737 return "OLE_E_PROMPTSAVECANCELLED ";
00738 case OLE_E_INVALIDRECT :
00739 return "OLE_E_INVALIDRECT ";
00740 case OLE_E_WRONGCOMPOBJ :
00741 return "OLE_E_WRONGCOMPOBJ ";
00742 case OLE_E_INVALIDHWND :
00743 return "OLE_E_INVALIDHWND ";
00744 case OLE_E_NOT_INPLACEACTIVE :
00745 return "OLE_E_NOT_INPLACEACTIVE ";
00746 case OLE_E_CANTCONVERT :
00747 return "OLE_E_CANTCONVERT ";
00748 case OLE_E_NOSTORAGE :
00749 return "OLE_E_NOSTORAGE ";
00750 case DV_E_FORMATETC :
00751 return "DV_E_FORMATETC ";
00752 case DV_E_DVTARGETDEVICE :
00753 return "DV_E_DVTARGETDEVICE ";
00754 case DV_E_STGMEDIUM :
00755 return "DV_E_STGMEDIUM ";
00756 case DV_E_STATDATA :
00757 return "DV_E_STATDATA ";
00758 case DV_E_LINDEX :
00759 return "DV_E_LINDEX ";
00760 case DV_E_TYMED :
00761 return "DV_E_TYMED ";
00762 case DV_E_CLIPFORMAT :
00763 return "DV_E_CLIPFORMAT ";
00764 case DV_E_DVASPECT :
00765 return "DV_E_DVASPECT ";
00766 case DV_E_DVTARGETDEVICE_SIZE :
00767 return "DV_E_DVTARGETDEVICE_SIZE ";
00768 case DV_E_NOIVIEWOBJECT :
00769 return "DV_E_NOIVIEWOBJECT ";
00770 case DRAGDROP_E_NOTREGISTERED :
00771 return "DRAGDROP_E_NOTREGISTERED ";
00772 case DRAGDROP_E_ALREADYREGISTERED :
00773 return "DRAGDROP_E_ALREADYREGISTERED ";
00774 case DRAGDROP_E_INVALIDHWND :
00775 return "DRAGDROP_E_INVALIDHWND ";
00776 case CLASS_E_NOAGGREGATION :
00777 return "CLASS_E_NOAGGREGATION ";
00778 case CLASS_E_CLASSNOTAVAILABLE :
00779 return "CLASS_E_CLASSNOTAVAILABLE ";
00780 case CLASS_E_NOTLICENSED :
00781 return "CLASS_E_NOTLICENSED ";
00782 case VIEW_E_DRAW :
00783 return "VIEW_E_DRAW ";
00784 case REGDB_E_READREGDB :
00785 return "REGDB_E_READREGDB ";
00786 case REGDB_E_WRITEREGDB :
00787 return "REGDB_E_WRITEREGDB ";
00788 case REGDB_E_KEYMISSING :
00789 return "REGDB_E_KEYMISSING ";
00790 case REGDB_E_INVALIDVALUE :
00791 return "REGDB_E_INVALIDVALUE ";
00792 case REGDB_E_CLASSNOTREG :
00793 return "REGDB_E_CLASSNOTREG ";
00794 case REGDB_E_IIDNOTREG :
00795 return "REGDB_E_IIDNOTREG ";
00796 case CAT_E_CATIDNOEXIST :
00797 return "CAT_E_CATIDNOEXIST ";
00798 case CAT_E_NODESCRIPTION :
00799 return "CAT_E_NODESCRIPTION ";
00800 case CS_E_PACKAGE_NOTFOUND :
00801 return "CS_E_PACKAGE_NOTFOUND ";
00802 case CS_E_NOT_DELETABLE :
00803 return "CS_E_NOT_DELETABLE ";
00804 case CS_E_CLASS_NOTFOUND :
00805 return "CS_E_CLASS_NOTFOUND ";
00806 case CS_E_INVALID_VERSION :
00807 return "CS_E_INVALID_VERSION ";
00808 case CS_E_NO_CLASSSTORE :
00809 return "CS_E_NO_CLASSSTORE ";
00810 case CACHE_E_NOCACHE_UPDATED :
00811 return "CACHE_E_NOCACHE_UPDATED ";
00812 case OLEOBJ_E_NOVERBS :
00813 return "OLEOBJ_E_NOVERBS ";
00814 case OLEOBJ_E_INVALIDVERB :
00815 return "OLEOBJ_E_INVALIDVERB ";
00816 case INPLACE_E_NOTUNDOABLE :
00817 return "INPLACE_E_NOTUNDOABLE ";
00818 case INPLACE_E_NOTOOLSPACE :
00819 return "INPLACE_E_NOTOOLSPACE ";
00820 case CONVERT10_E_OLESTREAM_GET :
00821 return "CONVERT10_E_OLESTREAM_GET ";
00822 case CONVERT10_E_OLESTREAM_PUT :
00823 return "CONVERT10_E_OLESTREAM_PUT ";
00824 case CONVERT10_E_OLESTREAM_FMT :
00825 return "CONVERT10_E_OLESTREAM_FMT ";
00826 case CONVERT10_E_OLESTREAM_BITMAP_TO_DIB :
00827 return "CONVERT10_E_OLESTREAM_BITMAP_TO_DIB ";
00828 case CONVERT10_E_STG_FMT :
00829 return "CONVERT10_E_STG_FMT ";
00830 case CONVERT10_E_STG_NO_STD_STREAM :
00831 return "CONVERT10_E_STG_NO_STD_STREAM ";
00832 case CONVERT10_E_STG_DIB_TO_BITMAP :
00833 return "CONVERT10_E_STG_DIB_TO_BITMAP ";
00834 case CLIPBRD_E_CANT_OPEN :
00835 return "CLIPBRD_E_CANT_OPEN ";
00836 case CLIPBRD_E_CANT_EMPTY :
00837 return "CLIPBRD_E_CANT_EMPTY ";
00838 case CLIPBRD_E_CANT_SET :
00839 return "CLIPBRD_E_CANT_SET ";
00840 case CLIPBRD_E_BAD_DATA :
00841 return "CLIPBRD_E_BAD_DATA ";
00842 case CLIPBRD_E_CANT_CLOSE :
00843 return "CLIPBRD_E_CANT_CLOSE ";
00844 case MK_E_CONNECTMANUALLY :
00845 return "MK_E_CONNECTMANUALLY ";
00846 case MK_E_EXCEEDEDDEADLINE :
00847 return "MK_E_EXCEEDEDDEADLINE ";
00848 case MK_E_NEEDGENERIC :
00849 return "MK_E_NEEDGENERIC ";
00850 case MK_E_UNAVAILABLE :
00851 return "MK_E_UNAVAILABLE ";
00852 case MK_E_SYNTAX :
00853 return "MK_E_SYNTAX ";
00854 case MK_E_NOOBJECT :
00855 return "MK_E_NOOBJECT ";
00856 case MK_E_INVALIDEXTENSION :
00857 return "MK_E_INVALIDEXTENSION ";
00858 case MK_E_INTERMEDIATEINTERFACENOTSUPPORTED :
00859 return "MK_E_INTERMEDIATEINTERFACENOTSUPPORTED ";
00860 case MK_E_NOTBINDABLE :
00861 return "MK_E_NOTBINDABLE ";
00862 case MK_E_NOTBOUND :
00863 return "MK_E_NOTBOUND ";
00864 case MK_E_CANTOPENFILE :
00865 return "MK_E_CANTOPENFILE ";
00866 case MK_E_MUSTBOTHERUSER :
00867 return "MK_E_MUSTBOTHERUSER ";
00868 case MK_E_NOINVERSE :
00869 return "MK_E_NOINVERSE ";
00870 case MK_E_NOSTORAGE :
00871 return "MK_E_NOSTORAGE ";
00872 case MK_E_NOPREFIX :
00873 return "MK_E_NOPREFIX ";
00874 case MK_E_ENUMERATION_FAILED :
00875 return "MK_E_ENUMERATION_FAILED ";
00876 case CO_E_NOTINITIALIZED :
00877 return "CO_E_NOTINITIALIZED ";
00878 case CO_E_ALREADYINITIALIZED :
00879 return "CO_E_ALREADYINITIALIZED ";
00880 case CO_E_CANTDETERMINECLASS :
00881 return "CO_E_CANTDETERMINECLASS ";
00882 case CO_E_CLASSSTRING :
00883 return "CO_E_CLASSSTRING ";
00884 case CO_E_IIDSTRING :
00885 return "CO_E_IIDSTRING ";
00886 case CO_E_APPNOTFOUND :
00887 return "CO_E_APPNOTFOUND ";
00888 case CO_E_APPSINGLEUSE :
00889 return "CO_E_APPSINGLEUSE ";
00890 case CO_E_ERRORINAPP :
00891 return "CO_E_ERRORINAPP ";
00892 case CO_E_DLLNOTFOUND :
00893 return "CO_E_DLLNOTFOUND ";
00894 case CO_E_ERRORINDLL :
00895 return "CO_E_ERRORINDLL ";
00896 case CO_E_WRONGOSFORAPP :
00897 return "CO_E_WRONGOSFORAPP ";
00898 case CO_E_OBJNOTREG :
00899 return "CO_E_OBJNOTREG ";
00900 case CO_E_OBJISREG :
00901 return "CO_E_OBJISREG ";
00902 case CO_E_OBJNOTCONNECTED :
00903 return "CO_E_OBJNOTCONNECTED ";
00904 case CO_E_APPDIDNTREG :
00905 return "CO_E_APPDIDNTREG ";
00906 case CO_E_RELEASED :
00907 return "CO_E_RELEASED ";
00908 case CO_E_FAILEDTOIMPERSONATE :
00909 return "CO_E_FAILEDTOIMPERSONATE ";
00910 case CO_E_FAILEDTOGETSECCTX :
00911 return "CO_E_FAILEDTOGETSECCTX ";
00912 case CO_E_FAILEDTOOPENTHREADTOKEN :
00913 return "CO_E_FAILEDTOOPENTHREADTOKEN ";
00914 case CO_E_FAILEDTOGETTOKENINFO :
00915 return "CO_E_FAILEDTOGETTOKENINFO ";
00916 case CO_E_TRUSTEEDOESNTMATCHCLIENT :
00917 return "CO_E_TRUSTEEDOESNTMATCHCLIENT ";
00918 case CO_E_FAILEDTOQUERYCLIENTBLANKET :
00919 return "CO_E_FAILEDTOQUERYCLIENTBLANKET ";
00920 case CO_E_FAILEDTOSETDACL :
00921 return "CO_E_FAILEDTOSETDACL ";
00922 case CO_E_ACCESSCHECKFAILED :
00923 return "CO_E_ACCESSCHECKFAILED ";
00924 case CO_E_NETACCESSAPIFAILED :
00925 return "CO_E_NETACCESSAPIFAILED ";
00926 case CO_E_WRONGTRUSTEENAMESYNTAX :
00927 return "CO_E_WRONGTRUSTEENAMESYNTAX ";
00928 case CO_E_INVALIDSID :
00929 return "CO_E_INVALIDSID ";
00930 case CO_E_CONVERSIONFAILED :
00931 return "CO_E_CONVERSIONFAILED ";
00932 case CO_E_NOMATCHINGSIDFOUND :
00933 return "CO_E_NOMATCHINGSIDFOUND ";
00934 case CO_E_LOOKUPACCSIDFAILED :
00935 return "CO_E_LOOKUPACCSIDFAILED ";
00936 case CO_E_NOMATCHINGNAMEFOUND :
00937 return "CO_E_NOMATCHINGNAMEFOUND ";
00938 case CO_E_LOOKUPACCNAMEFAILED :
00939 return "CO_E_LOOKUPACCNAMEFAILED ";
00940 case CO_E_SETSERLHNDLFAILED :
00941 return "CO_E_SETSERLHNDLFAILED ";
00942 case CO_E_FAILEDTOGETWINDIR :
00943 return "CO_E_FAILEDTOGETWINDIR ";
00944 case CO_E_PATHTOOLONG :
00945 return "CO_E_PATHTOOLONG ";
00946 case CO_E_FAILEDTOGENUUID :
00947 return "CO_E_FAILEDTOGENUUID ";
00948 case CO_E_FAILEDTOCREATEFILE :
00949 return "CO_E_FAILEDTOCREATEFILE ";
00950 case CO_E_FAILEDTOCLOSEHANDLE :
00951 return "CO_E_FAILEDTOCLOSEHANDLE ";
00952 case CO_E_EXCEEDSYSACLLIMIT :
00953 return "CO_E_EXCEEDSYSACLLIMIT ";
00954 case CO_E_ACESINWRONGORDER :
00955 return "CO_E_ACESINWRONGORDER ";
00956 case CO_E_INCOMPATIBLESTREAMVERSION :
00957 return "CO_E_INCOMPATIBLESTREAMVERSION ";
00958 case CO_E_FAILEDTOOPENPROCESSTOKEN :
00959 return "CO_E_FAILEDTOOPENPROCESSTOKEN ";
00960 case CO_E_DECODEFAILED :
00961 return "CO_E_DECODEFAILED ";
00962 case CO_E_ACNOTINITIALIZED :
00963 return "CO_E_ACNOTINITIALIZED ";
00964 case OLE_S_USEREG :
00965 return "OLE_S_USEREG ";
00966 case OLE_S_STATIC :
00967 return "OLE_S_STATIC ";
00968 case OLE_S_MAC_CLIPFORMAT :
00969 return "OLE_S_MAC_CLIPFORMAT ";
00970 case DRAGDROP_S_DROP :
00971 return "DRAGDROP_S_DROP ";
00972 case DRAGDROP_S_CANCEL :
00973 return "DRAGDROP_S_CANCEL ";
00974 case DRAGDROP_S_USEDEFAULTCURSORS :
00975 return "DRAGDROP_S_USEDEFAULTCURSORS ";
00976 case DATA_S_SAMEFORMATETC :
00977 return "DATA_S_SAMEFORMATETC ";
00978 case VIEW_S_ALREADY_FROZEN :
00979 return "VIEW_S_ALREADY_FROZEN ";
00980 case CACHE_S_FORMATETC_NOTSUPPORTED :
00981 return "CACHE_S_FORMATETC_NOTSUPPORTED ";
00982 case CACHE_S_SAMECACHE :
00983 return "CACHE_S_SAMECACHE ";
00984 case CACHE_S_SOMECACHES_NOTUPDATED :
00985 return "CACHE_S_SOMECACHES_NOTUPDATED ";
00986 case OLEOBJ_S_INVALIDVERB :
00987 return "OLEOBJ_S_INVALIDVERB ";
00988 case OLEOBJ_S_CANNOT_DOVERB_NOW :
00989 return "OLEOBJ_S_CANNOT_DOVERB_NOW ";
00990 case OLEOBJ_S_INVALIDHWND :
00991 return "OLEOBJ_S_INVALIDHWND ";
00992 case INPLACE_S_TRUNCATED :
00993 return "INPLACE_S_TRUNCATED ";
00994 case CONVERT10_S_NO_PRESENTATION :
00995 return "CONVERT10_S_NO_PRESENTATION ";
00996 case MK_S_REDUCED_TO_SELF :
00997 return "MK_S_REDUCED_TO_SELF ";
00998 case MK_S_ME :
00999 return "MK_S_ME ";
01000 case MK_S_HIM :
01001 return "MK_S_HIM ";
01002 case MK_S_US :
01003 return "MK_S_US ";
01004 case MK_S_MONIKERALREADYREGISTERED :
01005 return "MK_S_MONIKERALREADYREGISTERED ";
01006 case CO_E_CLASS_CREATE_FAILED :
01007 return "CO_E_CLASS_CREATE_FAILED ";
01008 case CO_E_SCM_ERROR :
01009 return "CO_E_SCM_ERROR ";
01010 case CO_E_SCM_RPC_FAILURE :
01011 return "CO_E_SCM_RPC_FAILURE ";
01012 case CO_E_BAD_PATH :
01013 return "CO_E_BAD_PATH ";
01014 case CO_E_SERVER_EXEC_FAILURE :
01015 return "CO_E_SERVER_EXEC_FAILURE ";
01016 case CO_E_OBJSRV_RPC_FAILURE :
01017 return "CO_E_OBJSRV_RPC_FAILURE ";
01018 case MK_E_NO_NORMALIZED :
01019 return "MK_E_NO_NORMALIZED ";
01020 case CO_E_SERVER_STOPPING :
01021 return "CO_E_SERVER_STOPPING ";
01022 case MEM_E_INVALID_ROOT :
01023 return "MEM_E_INVALID_ROOT ";
01024 case MEM_E_INVALID_LINK :
01025 return "MEM_E_INVALID_LINK ";
01026 case MEM_E_INVALID_SIZE :
01027 return "MEM_E_INVALID_SIZE ";
01028 case CO_S_NOTALLINTERFACES :
01029 return "CO_S_NOTALLINTERFACES ";
01030 case DISP_E_UNKNOWNINTERFACE :
01031 return "DISP_E_UNKNOWNINTERFACE ";
01032 case DISP_E_MEMBERNOTFOUND :
01033 return "DISP_E_MEMBERNOTFOUND ";
01034 case DISP_E_PARAMNOTFOUND :
01035 return "DISP_E_PARAMNOTFOUND ";
01036 case DISP_E_TYPEMISMATCH :
01037 return "DISP_E_TYPEMISMATCH ";
01038 case DISP_E_UNKNOWNNAME :
01039 return "DISP_E_UNKNOWNNAME ";
01040 case DISP_E_NONAMEDARGS :
01041 return "DISP_E_NONAMEDARGS ";
01042 case DISP_E_BADVARTYPE :
01043 return "DISP_E_BADVARTYPE ";
01044 case DISP_E_EXCEPTION :
01045 return "DISP_E_EXCEPTION ";
01046 case DISP_E_OVERFLOW :
01047 return "DISP_E_OVERFLOW ";
01048 case DISP_E_BADINDEX :
01049 return "DISP_E_BADINDEX ";
01050 case DISP_E_UNKNOWNLCID :
01051 return "DISP_E_UNKNOWNLCID ";
01052 case DISP_E_ARRAYISLOCKED :
01053 return "DISP_E_ARRAYISLOCKED ";
01054 case DISP_E_BADPARAMCOUNT :
01055 return "DISP_E_BADPARAMCOUNT ";
01056 case DISP_E_PARAMNOTOPTIONAL :
01057 return "DISP_E_PARAMNOTOPTIONAL ";
01058 case DISP_E_BADCALLEE :
01059 return "DISP_E_BADCALLEE ";
01060 case DISP_E_NOTACOLLECTION :
01061 return "DISP_E_NOTACOLLECTION ";
01062 case DISP_E_DIVBYZERO :
01063 return "DISP_E_DIVBYZERO ";
01064 case TYPE_E_BUFFERTOOSMALL :
01065 return "TYPE_E_BUFFERTOOSMALL ";
01066 case TYPE_E_FIELDNOTFOUND :
01067 return "TYPE_E_FIELDNOTFOUND ";
01068 case TYPE_E_INVDATAREAD :
01069 return "TYPE_E_INVDATAREAD ";
01070 case TYPE_E_UNSUPFORMAT :
01071 return "TYPE_E_UNSUPFORMAT ";
01072 case TYPE_E_REGISTRYACCESS :
01073 return "TYPE_E_REGISTRYACCESS ";
01074 case TYPE_E_LIBNOTREGISTERED :
01075 return "TYPE_E_LIBNOTREGISTERED ";
01076 case TYPE_E_UNDEFINEDTYPE :
01077 return "TYPE_E_UNDEFINEDTYPE ";
01078 case TYPE_E_QUALIFIEDNAMEDISALLOWED :
01079 return "TYPE_E_QUALIFIEDNAMEDISALLOWED ";
01080 case TYPE_E_INVALIDSTATE :
01081 return "TYPE_E_INVALIDSTATE ";
01082 case TYPE_E_WRONGTYPEKIND :
01083 return "TYPE_E_WRONGTYPEKIND ";
01084 case TYPE_E_ELEMENTNOTFOUND :
01085 return "TYPE_E_ELEMENTNOTFOUND ";
01086 case TYPE_E_AMBIGUOUSNAME :
01087 return "TYPE_E_AMBIGUOUSNAME ";
01088 case TYPE_E_NAMECONFLICT :
01089 return "TYPE_E_NAMECONFLICT ";
01090 case TYPE_E_UNKNOWNLCID :
01091 return "TYPE_E_UNKNOWNLCID ";
01092 case TYPE_E_DLLFUNCTIONNOTFOUND :
01093 return "TYPE_E_DLLFUNCTIONNOTFOUND ";
01094 case TYPE_E_BADMODULEKIND :
01095 return "TYPE_E_BADMODULEKIND ";
01096 case TYPE_E_SIZETOOBIG :
01097 return "TYPE_E_SIZETOOBIG ";
01098 case TYPE_E_DUPLICATEID :
01099 return "TYPE_E_DUPLICATEID ";
01100 case TYPE_E_INVALIDID :
01101 return "TYPE_E_INVALIDID ";
01102 case TYPE_E_TYPEMISMATCH :
01103 return "TYPE_E_TYPEMISMATCH ";
01104 case TYPE_E_OUTOFBOUNDS :
01105 return "TYPE_E_OUTOFBOUNDS ";
01106 case TYPE_E_IOERROR :
01107 return "TYPE_E_IOERROR ";
01108 case TYPE_E_CANTCREATETMPFILE :
01109 return "TYPE_E_CANTCREATETMPFILE ";
01110 case TYPE_E_CANTLOADLIBRARY :
01111 return "TYPE_E_CANTLOADLIBRARY ";
01112 case TYPE_E_INCONSISTENTPROPFUNCS :
01113 return "TYPE_E_INCONSISTENTPROPFUNCS ";
01114 case TYPE_E_CIRCULARTYPE :
01115 return "TYPE_E_CIRCULARTYPE ";
01116 case STG_E_INVALIDFUNCTION :
01117 return "STG_E_INVALIDFUNCTION ";
01118 case STG_E_FILENOTFOUND :
01119 return "STG_E_FILENOTFOUND ";
01120 case STG_E_PATHNOTFOUND :
01121 return "STG_E_PATHNOTFOUND ";
01122 case STG_E_TOOMANYOPENFILES :
01123 return "STG_E_TOOMANYOPENFILES ";
01124 case STG_E_ACCESSDENIED :
01125 return "STG_E_ACCESSDENIED ";
01126 case STG_E_INVALIDHANDLE :
01127 return "STG_E_INVALIDHANDLE ";
01128 case STG_E_INSUFFICIENTMEMORY :
01129 return "STG_E_INSUFFICIENTMEMORY ";
01130 case STG_E_INVALIDPOINTER :
01131 return "STG_E_INVALIDPOINTER ";
01132 case STG_E_NOMOREFILES :
01133 return "STG_E_NOMOREFILES ";
01134 case STG_E_DISKISWRITEPROTECTED :
01135 return "STG_E_DISKISWRITEPROTECTED ";
01136 case STG_E_SEEKERROR :
01137 return "STG_E_SEEKERROR ";
01138 case STG_E_WRITEFAULT :
01139 return "STG_E_WRITEFAULT ";
01140 case STG_E_READFAULT :
01141 return "STG_E_READFAULT ";
01142 case STG_E_SHAREVIOLATION :
01143 return "STG_E_SHAREVIOLATION ";
01144 case STG_E_LOCKVIOLATION :
01145 return "STG_E_LOCKVIOLATION ";
01146 case STG_E_FILEALREADYEXISTS :
01147 return "STG_E_FILEALREADYEXISTS ";
01148 case STG_E_INVALIDPARAMETER :
01149 return "STG_E_INVALIDPARAMETER ";
01150 case STG_E_MEDIUMFULL :
01151 return "STG_E_MEDIUMFULL ";
01152 case STG_E_PROPSETMISMATCHED :
01153 return "STG_E_PROPSETMISMATCHED ";
01154 case STG_E_ABNORMALAPIEXIT :
01155 return "STG_E_ABNORMALAPIEXIT ";
01156 case STG_E_INVALIDHEADER :
01157 return "STG_E_INVALIDHEADER ";
01158 case STG_E_INVALIDNAME :
01159 return "STG_E_INVALIDNAME ";
01160 case STG_E_UNKNOWN :
01161 return "STG_E_UNKNOWN ";
01162 case STG_E_UNIMPLEMENTEDFUNCTION :
01163 return "STG_E_UNIMPLEMENTEDFUNCTION ";
01164 case STG_E_INVALIDFLAG :
01165 return "STG_E_INVALIDFLAG ";
01166 case STG_E_INUSE :
01167 return "STG_E_INUSE ";
01168 case STG_E_NOTCURRENT :
01169 return "STG_E_NOTCURRENT ";
01170 case STG_E_REVERTED :
01171 return "STG_E_REVERTED ";
01172 case STG_E_CANTSAVE :
01173 return "STG_E_CANTSAVE ";
01174 case STG_E_OLDFORMAT :
01175 return "STG_E_OLDFORMAT ";
01176 case STG_E_OLDDLL :
01177 return "STG_E_OLDDLL ";
01178 case STG_E_SHAREREQUIRED :
01179 return "STG_E_SHAREREQUIRED ";
01180 case STG_E_NOTFILEBASEDSTORAGE :
01181 return "STG_E_NOTFILEBASEDSTORAGE ";
01182 case STG_E_EXTANTMARSHALLINGS :
01183 return "STG_E_EXTANTMARSHALLINGS ";
01184 case STG_E_DOCFILECORRUPT :
01185 return "STG_E_DOCFILECORRUPT ";
01186 case STG_E_BADBASEADDRESS :
01187 return "STG_E_BADBASEADDRESS ";
01188 case STG_E_INCOMPLETE :
01189 return "STG_E_INCOMPLETE ";
01190 case STG_E_TERMINATED :
01191 return "STG_E_TERMINATED ";
01192 case STG_S_CONVERTED :
01193 return "STG_S_CONVERTED ";
01194 case STG_S_BLOCK :
01195 return "STG_S_BLOCK ";
01196 case STG_S_RETRYNOW :
01197 return "STG_S_RETRYNOW ";
01198 case STG_S_MONITORING :
01199 return "STG_S_MONITORING ";
01200 case STG_S_MULTIPLEOPENS :
01201 return "STG_S_MULTIPLEOPENS ";
01202 case STG_S_CONSOLIDATIONFAILED :
01203 return "STG_S_CONSOLIDATIONFAILED ";
01204 case STG_S_CANNOTCONSOLIDATE :
01205 return "STG_S_CANNOTCONSOLIDATE ";
01206 case RPC_E_CALL_REJECTED :
01207 return "RPC_E_CALL_REJECTED ";
01208 case RPC_E_CALL_CANCELED :
01209 return "RPC_E_CALL_CANCELED ";
01210 case RPC_E_CANTPOST_INSENDCALL :
01211 return "RPC_E_CANTPOST_INSENDCALL ";
01212 case RPC_E_CANTCALLOUT_INASYNCCALL :
01213 return "RPC_E_CANTCALLOUT_INASYNCCALL ";
01214 case RPC_E_CANTCALLOUT_INEXTERNALCALL :
01215 return "RPC_E_CANTCALLOUT_INEXTERNALCALL ";
01216 case RPC_E_CONNECTION_TERMINATED :
01217 return "RPC_E_CONNECTION_TERMINATED ";
01218 case RPC_E_SERVER_DIED :
01219 return "RPC_E_SERVER_DIED ";
01220 case RPC_E_CLIENT_DIED :
01221 return "RPC_E_CLIENT_DIED ";
01222 case RPC_E_INVALID_DATAPACKET :
01223 return "RPC_E_INVALID_DATAPACKET ";
01224 case RPC_E_CANTTRANSMIT_CALL :
01225 return "RPC_E_CANTTRANSMIT_CALL ";
01226 case RPC_E_CLIENT_CANTMARSHAL_DATA :
01227 return "RPC_E_CLIENT_CANTMARSHAL_DATA ";
01228 case RPC_E_CLIENT_CANTUNMARSHAL_DATA :
01229 return "RPC_E_CLIENT_CANTUNMARSHAL_DATA ";
01230 case RPC_E_SERVER_CANTMARSHAL_DATA :
01231 return "RPC_E_SERVER_CANTMARSHAL_DATA ";
01232 case RPC_E_SERVER_CANTUNMARSHAL_DATA :
01233 return "RPC_E_SERVER_CANTUNMARSHAL_DATA ";
01234 case RPC_E_INVALID_DATA :
01235 return "RPC_E_INVALID_DATA ";
01236 case RPC_E_INVALID_PARAMETER :
01237 return "RPC_E_INVALID_PARAMETER ";
01238 case RPC_E_CANTCALLOUT_AGAIN :
01239 return "RPC_E_CANTCALLOUT_AGAIN ";
01240 case RPC_E_SERVER_DIED_DNE :
01241 return "RPC_E_SERVER_DIED_DNE ";
01242 case RPC_E_SYS_CALL_FAILED :
01243 return "RPC_E_SYS_CALL_FAILED ";
01244 case RPC_E_OUT_OF_RESOURCES :
01245 return "RPC_E_OUT_OF_RESOURCES ";
01246 case RPC_E_ATTEMPTED_MULTITHREAD :
01247 return "RPC_E_ATTEMPTED_MULTITHREAD ";
01248 case RPC_E_NOT_REGISTERED :
01249 return "RPC_E_NOT_REGISTERED ";
01250 case RPC_E_FAULT :
01251 return "RPC_E_FAULT ";
01252 case RPC_E_SERVERFAULT :
01253 return "RPC_E_SERVERFAULT ";
01254 case RPC_E_CHANGED_MODE :
01255 return "RPC_E_CHANGED_MODE ";
01256 case RPC_E_INVALIDMETHOD :
01257 return "RPC_E_INVALIDMETHOD ";
01258 case RPC_E_DISCONNECTED :
01259 return "RPC_E_DISCONNECTED ";
01260 case RPC_E_RETRY :
01261 return "RPC_E_RETRY ";
01262 case RPC_E_SERVERCALL_RETRYLATER :
01263 return "RPC_E_SERVERCALL_RETRYLATER ";
01264 case RPC_E_SERVERCALL_REJECTED :
01265 return "RPC_E_SERVERCALL_REJECTED ";
01266 case RPC_E_INVALID_CALLDATA :
01267 return "RPC_E_INVALID_CALLDATA ";
01268 case RPC_E_CANTCALLOUT_ININPUTSYNCCALL :
01269 return "RPC_E_CANTCALLOUT_ININPUTSYNCCALL ";
01270 case RPC_E_WRONG_THREAD :
01271 return "RPC_E_WRONG_THREAD ";
01272 case RPC_E_THREAD_NOT_INIT :
01273 return "RPC_E_THREAD_NOT_INIT ";
01274 case RPC_E_VERSION_MISMATCH :
01275 return "RPC_E_VERSION_MISMATCH ";
01276 case RPC_E_INVALID_HEADER :
01277 return "RPC_E_INVALID_HEADER ";
01278 case RPC_E_INVALID_EXTENSION :
01279 return "RPC_E_INVALID_EXTENSION ";
01280 case RPC_E_INVALID_IPID :
01281 return "RPC_E_INVALID_IPID ";
01282 case RPC_E_INVALID_OBJECT :
01283 return "RPC_E_INVALID_OBJECT ";
01284 case RPC_S_CALLPENDING :
01285 return "RPC_S_CALLPENDING ";
01286 case RPC_S_WAITONTIMER :
01287 return "RPC_S_WAITONTIMER ";
01288 case RPC_E_CALL_COMPLETE :
01289 return "RPC_E_CALL_COMPLETE ";
01290 case RPC_E_UNSECURE_CALL :
01291 return "RPC_E_UNSECURE_CALL ";
01292 case RPC_E_TOO_LATE :
01293 return "RPC_E_TOO_LATE ";
01294 case RPC_E_NO_GOOD_SECURITY_PACKAGES :
01295 return "RPC_E_NO_GOOD_SECURITY_PACKAGES ";
01296 case RPC_E_ACCESS_DENIED :
01297 return "RPC_E_ACCESS_DENIED ";
01298 case RPC_E_REMOTE_DISABLED :
01299 return "RPC_E_REMOTE_DISABLED ";
01300 case RPC_E_INVALID_OBJREF :
01301 return "RPC_E_INVALID_OBJREF ";
01302 case RPC_E_NO_CONTEXT :
01303 return "RPC_E_NO_CONTEXT ";
01304 case RPC_E_TIMEOUT :
01305 return "RPC_E_TIMEOUT ";
01306 case RPC_E_NO_SYNC :
01307 return "RPC_E_NO_SYNC ";
01308 case RPC_E_UNEXPECTED :
01309 return "RPC_E_UNEXPECTED ";
01310 case NTE_BAD_UID :
01311 return "NTE_BAD_UID ";
01312 case NTE_BAD_HASH :
01313 return "NTE_BAD_HASH ";
01314
01315
01316 case NTE_BAD_KEY :
01317 return "NTE_BAD_KEY ";
01318 case NTE_BAD_LEN :
01319 return "NTE_BAD_LEN ";
01320 case NTE_BAD_DATA :
01321 return "NTE_BAD_DATA ";
01322 case NTE_BAD_SIGNATURE :
01323 return "NTE_BAD_SIGNATURE ";
01324 case NTE_BAD_VER :
01325 return "NTE_BAD_VER ";
01326 case NTE_BAD_ALGID :
01327 return "NTE_BAD_ALGID ";
01328 case NTE_BAD_FLAGS :
01329 return "NTE_BAD_FLAGS ";
01330 case NTE_BAD_TYPE :
01331 return "NTE_BAD_TYPE ";
01332 case NTE_BAD_KEY_STATE :
01333 return "NTE_BAD_KEY_STATE ";
01334 case NTE_BAD_HASH_STATE :
01335 return "NTE_BAD_HASH_STATE ";
01336 case NTE_NO_KEY :
01337 return "NTE_NO_KEY ";
01338 case NTE_NO_MEMORY :
01339 return "NTE_NO_MEMORY ";
01340 case NTE_EXISTS :
01341 return "NTE_EXISTS ";
01342 case NTE_PERM :
01343 return "NTE_PERM ";
01344 case NTE_NOT_FOUND :
01345 return "NTE_NOT_FOUND ";
01346 case NTE_DOUBLE_ENCRYPT :
01347 return "NTE_DOUBLE_ENCRYPT ";
01348 case NTE_BAD_PROVIDER :
01349 return "NTE_BAD_PROVIDER ";
01350 case NTE_BAD_PROV_TYPE :
01351 return "NTE_BAD_PROV_TYPE ";
01352 case NTE_BAD_PUBLIC_KEY :
01353 return "NTE_BAD_PUBLIC_KEY ";
01354 case NTE_BAD_KEYSET :
01355 return "NTE_BAD_KEYSET ";
01356 case NTE_PROV_TYPE_NOT_DEF :
01357 return "NTE_PROV_TYPE_NOT_DEF ";
01358 case NTE_PROV_TYPE_ENTRY_BAD :
01359 return "NTE_PROV_TYPE_ENTRY_BAD ";
01360 case NTE_KEYSET_NOT_DEF :
01361 return "NTE_KEYSET_NOT_DEF ";
01362 case NTE_KEYSET_ENTRY_BAD :
01363 return "NTE_KEYSET_ENTRY_BAD ";
01364 case NTE_PROV_TYPE_NO_MATCH :
01365 return "NTE_PROV_TYPE_NO_MATCH ";
01366 case NTE_SIGNATURE_FILE_BAD :
01367 return "NTE_SIGNATURE_FILE_BAD ";
01368 case NTE_PROVIDER_DLL_FAIL :
01369 return "NTE_PROVIDER_DLL_FAIL ";
01370 case NTE_PROV_DLL_NOT_FOUND :
01371 return "NTE_PROV_DLL_NOT_FOUND ";
01372 case NTE_BAD_KEYSET_PARAM :
01373 return "NTE_BAD_KEYSET_PARAM ";
01374 case NTE_FAIL :
01375 return "NTE_FAIL ";
01376 case NTE_SYS_ERR :
01377 return "NTE_SYS_ERR ";
01378 case CRYPT_E_MSG_ERROR :
01379 return "CRYPT_E_MSG_ERROR ";
01380 case CRYPT_E_UNKNOWN_ALGO :
01381 return "CRYPT_E_UNKNOWN_ALGO ";
01382 case CRYPT_E_OID_FORMAT :
01383 return "CRYPT_E_OID_FORMAT ";
01384 case CRYPT_E_INVALID_MSG_TYPE :
01385 return "CRYPT_E_INVALID_MSG_TYPE ";
01386 case CRYPT_E_UNEXPECTED_ENCODING :
01387 return "CRYPT_E_UNEXPECTED_ENCODING ";
01388 case CRYPT_E_AUTH_ATTR_MISSING :
01389 return "CRYPT_E_AUTH_ATTR_MISSING ";
01390 case CRYPT_E_HASH_VALUE :
01391 return "CRYPT_E_HASH_VALUE ";
01392 case CRYPT_E_INVALID_INDEX :
01393 return "CRYPT_E_INVALID_INDEX ";
01394 case CRYPT_E_ALREADY_DECRYPTED :
01395 return "CRYPT_E_ALREADY_DECRYPTED ";
01396 case CRYPT_E_NOT_DECRYPTED :
01397 return "CRYPT_E_NOT_DECRYPTED ";
01398 case CRYPT_E_RECIPIENT_NOT_FOUND :
01399 return "CRYPT_E_RECIPIENT_NOT_FOUND ";
01400 case CRYPT_E_CONTROL_TYPE :
01401 return "CRYPT_E_CONTROL_TYPE ";
01402 case CRYPT_E_ISSUER_SERIALNUMBER :
01403 return "CRYPT_E_ISSUER_SERIALNUMBER ";
01404 case CRYPT_E_SIGNER_NOT_FOUND :
01405 return "CRYPT_E_SIGNER_NOT_FOUND ";
01406 case CRYPT_E_ATTRIBUTES_MISSING :
01407 return "CRYPT_E_ATTRIBUTES_MISSING ";
01408 case CRYPT_E_STREAM_MSG_NOT_READY :
01409 return "CRYPT_E_STREAM_MSG_NOT_READY ";
01410 case CRYPT_E_STREAM_INSUFFICIENT_DATA :
01411 return "CRYPT_E_STREAM_INSUFFICIENT_DATA ";
01412 case CRYPT_E_BAD_LEN :
01413 return "CRYPT_E_BAD_LEN ";
01414 case CRYPT_E_BAD_ENCODE :
01415 return "CRYPT_E_BAD_ENCODE ";
01416 case CRYPT_E_FILE_ERROR :
01417 return "CRYPT_E_FILE_ERROR ";
01418 case CRYPT_E_NOT_FOUND :
01419 return "CRYPT_E_NOT_FOUND ";
01420 case CRYPT_E_EXISTS :
01421 return "CRYPT_E_EXISTS ";
01422 case CRYPT_E_NO_PROVIDER :
01423 return "CRYPT_E_NO_PROVIDER ";
01424 case CRYPT_E_SELF_SIGNED :
01425 return "CRYPT_E_SELF_SIGNED ";
01426 case CRYPT_E_DELETED_PREV :
01427 return "CRYPT_E_DELETED_PREV ";
01428 case CRYPT_E_NO_MATCH :
01429 return "CRYPT_E_NO_MATCH ";
01430 case CRYPT_E_UNEXPECTED_MSG_TYPE :
01431 return "CRYPT_E_UNEXPECTED_MSG_TYPE ";
01432 case CRYPT_E_NO_KEY_PROPERTY :
01433 return "CRYPT_E_NO_KEY_PROPERTY ";
01434 case CRYPT_E_NO_DECRYPT_CERT :
01435 return "CRYPT_E_NO_DECRYPT_CERT ";
01436 case CRYPT_E_BAD_MSG :
01437 return "CRYPT_E_BAD_MSG ";
01438 case CRYPT_E_NO_SIGNER :
01439 return "CRYPT_E_NO_SIGNER ";
01440 case CRYPT_E_PENDING_CLOSE :
01441 return "CRYPT_E_PENDING_CLOSE ";
01442 case CRYPT_E_REVOKED :
01443 return "CRYPT_E_REVOKED ";
01444 case CRYPT_E_NO_REVOCATION_DLL :
01445 return "CRYPT_E_NO_REVOCATION_DLL ";
01446 case CRYPT_E_NO_REVOCATION_CHECK :
01447 return "CRYPT_E_NO_REVOCATION_CHECK ";
01448 case CRYPT_E_REVOCATION_OFFLINE :
01449 return "CRYPT_E_REVOCATION_OFFLINE ";
01450 case CRYPT_E_NOT_IN_REVOCATION_DATABASE :
01451 return "CRYPT_E_NOT_IN_REVOCATION_DATABASE ";
01452 case CRYPT_E_INVALID_NUMERIC_STRING :
01453 return "CRYPT_E_INVALID_NUMERIC_STRING ";
01454 case CRYPT_E_INVALID_PRINTABLE_STRING :
01455 return "CRYPT_E_INVALID_PRINTABLE_STRING ";
01456 case CRYPT_E_INVALID_IA5_STRING :
01457 return "CRYPT_E_INVALID_IA5_STRING ";
01458 case CRYPT_E_INVALID_X500_STRING :
01459 return "CRYPT_E_INVALID_X500_STRING ";
01460 case CRYPT_E_NOT_CHAR_STRING :
01461 return "CRYPT_E_NOT_CHAR_STRING ";
01462 case CRYPT_E_FILERESIZED :
01463 return "CRYPT_E_FILERESIZED ";
01464 case CRYPT_E_SECURITY_SETTINGS :
01465 return "CRYPT_E_SECURITY_SETTINGS ";
01466 case CRYPT_E_NO_VERIFY_USAGE_DLL :
01467 return "CRYPT_E_NO_VERIFY_USAGE_DLL ";
01468 case CRYPT_E_NO_VERIFY_USAGE_CHECK :
01469 return "CRYPT_E_NO_VERIFY_USAGE_CHECK ";
01470 case CRYPT_E_VERIFY_USAGE_OFFLINE :
01471 return "CRYPT_E_VERIFY_USAGE_OFFLINE ";
01472 case CRYPT_E_NOT_IN_CTL :
01473 return "CRYPT_E_NOT_IN_CTL ";
01474 case CRYPT_E_NO_TRUSTED_SIGNER :
01475 return "CRYPT_E_NO_TRUSTED_SIGNER ";
01476 case CRYPT_E_OSS_ERROR :
01477 return "CRYPT_E_OSS_ERROR ";
01478 case CERTSRV_E_BAD_REQUESTSUBJECT :
01479 return "CERTSRV_E_BAD_REQUESTSUBJECT ";
01480 case CERTSRV_E_NO_REQUEST :
01481 return "CERTSRV_E_NO_REQUEST ";
01482 case CERTSRV_E_BAD_REQUESTSTATUS :
01483 return "CERTSRV_E_BAD_REQUESTSTATUS ";
01484 case CERTSRV_E_PROPERTY_EMPTY :
01485 return "CERTSRV_E_PROPERTY_EMPTY ";
01486
01487
01488 case TRUST_E_SYSTEM_ERROR :
01489 return "TRUST_E_SYSTEM_ERROR ";
01490 case TRUST_E_NO_SIGNER_CERT :
01491 return "TRUST_E_NO_SIGNER_CERT ";
01492 case TRUST_E_COUNTER_SIGNER :
01493 return "TRUST_E_COUNTER_SIGNER ";
01494 case TRUST_E_CERT_SIGNATURE :
01495 return "TRUST_E_CERT_SIGNATURE ";
01496 case TRUST_E_TIME_STAMP :
01497 return "TRUST_E_TIME_STAMP ";
01498 case TRUST_E_BAD_DIGEST :
01499 return "TRUST_E_BAD_DIGEST ";
01500 case TRUST_E_BASIC_CONSTRAINTS :
01501 return "TRUST_E_BASIC_CONSTRAINTS ";
01502 case TRUST_E_FINANCIAL_CRITERIA :
01503 return "TRUST_E_FINANCIAL_CRITERIA ";
01504 case TRUST_E_PROVIDER_UNKNOWN :
01505 return "TRUST_E_PROVIDER_UNKNOWN ";
01506 case TRUST_E_ACTION_UNKNOWN :
01507 return "TRUST_E_ACTION_UNKNOWN ";
01508 case TRUST_E_SUBJECT_FORM_UNKNOWN :
01509 return "TRUST_E_SUBJECT_FORM_UNKNOWN ";
01510 case TRUST_E_SUBJECT_NOT_TRUSTED :
01511 return "TRUST_E_SUBJECT_NOT_TRUSTED ";
01512 case DIGSIG_E_ENCODE :
01513 return "DIGSIG_E_ENCODE ";
01514 case DIGSIG_E_DECODE :
01515 return "DIGSIG_E_DECODE ";
01516 case DIGSIG_E_EXTENSIBILITY :
01517 return "DIGSIG_E_EXTENSIBILITY ";
01518 case DIGSIG_E_CRYPTO :
01519 return "DIGSIG_E_CRYPTO ";
01520 case PERSIST_E_SIZEDEFINITE :
01521 return "PERSIST_E_SIZEDEFINITE ";
01522 case PERSIST_E_SIZEINDEFINITE :
01523 return "PERSIST_E_SIZEINDEFINITE ";
01524 case PERSIST_E_NOTSELFSIZING :
01525 return "PERSIST_E_NOTSELFSIZING ";
01526 case TRUST_E_NOSIGNATURE :
01527 return "TRUST_E_NOSIGNATURE ";
01528 case CERT_E_EXPIRED :
01529 return "CERT_E_EXPIRED ";
01530 case CERT_E_VALIDITYPERIODNESTING :
01531 return "CERT_E_VALIDITYPERIODNESTING ";
01532 case CERT_E_ROLE :
01533 return "CERT_E_ROLE ";
01534 case CERT_E_PATHLENCONST :
01535 return "CERT_E_PATHLENCONST ";
01536 case CERT_E_CRITICAL :
01537 return "CERT_E_CRITICAL ";
01538 case CERT_E_PURPOSE :
01539 return "CERT_E_PURPOSE ";
01540 case CERT_E_ISSUERCHAINING :
01541 return "CERT_E_ISSUERCHAINING ";
01542 case CERT_E_MALFORMED :
01543 return "CERT_E_MALFORMED ";
01544 case CERT_E_UNTRUSTEDROOT :
01545 return "CERT_E_UNTRUSTEDROOT ";
01546 case CERT_E_CHAINING :
01547 return "CERT_E_CHAINING ";
01548 case TRUST_E_FAIL :
01549 return "TRUST_E_FAIL ";
01550 case CERT_E_REVOKED :
01551 return "CERT_E_REVOKED ";
01552 case CERT_E_UNTRUSTEDTESTROOT :
01553 return "CERT_E_UNTRUSTEDTESTROOT ";
01554 case CERT_E_REVOCATION_FAILURE :
01555 return "CERT_E_REVOCATION_FAILURE ";
01556 case CERT_E_CN_NO_MATCH :
01557 return "CERT_E_CN_NO_MATCH ";
01558 case CERT_E_WRONG_USAGE :
01559 return "CERT_E_WRONG_USAGE ";
01560 case SPAPI_E_EXPECTED_SECTION_NAME :
01561 return "SPAPI_E_EXPECTED_SECTION_NAME ";
01562 case SPAPI_E_BAD_SECTION_NAME_LINE :
01563 return "SPAPI_E_BAD_SECTION_NAME_LINE ";
01564 case SPAPI_E_SECTION_NAME_TOO_LONG :
01565 return "SPAPI_E_SECTION_NAME_TOO_LONG ";
01566 case SPAPI_E_GENERAL_SYNTAX :
01567 return "SPAPI_E_GENERAL_SYNTAX ";
01568 case SPAPI_E_WRONG_INF_STYLE :
01569 return "SPAPI_E_WRONG_INF_STYLE ";
01570 case SPAPI_E_SECTION_NOT_FOUND :
01571 return "SPAPI_E_SECTION_NOT_FOUND ";
01572 case SPAPI_E_LINE_NOT_FOUND :
01573 return "SPAPI_E_LINE_NOT_FOUND ";
01574 case SPAPI_E_NO_ASSOCIATED_CLASS :
01575 return "SPAPI_E_NO_ASSOCIATED_CLASS ";
01576 case SPAPI_E_CLASS_MISMATCH :
01577 return "SPAPI_E_CLASS_MISMATCH ";
01578 case SPAPI_E_DUPLICATE_FOUND :
01579 return "SPAPI_E_DUPLICATE_FOUND ";
01580 case SPAPI_E_NO_DRIVER_SELECTED :
01581 return "SPAPI_E_NO_DRIVER_SELECTED ";
01582 case SPAPI_E_KEY_DOES_NOT_EXIST :
01583 return "SPAPI_E_KEY_DOES_NOT_EXIST ";
01584 case SPAPI_E_INVALID_DEVINST_NAME :
01585 return "SPAPI_E_INVALID_DEVINST_NAME ";
01586 case SPAPI_E_INVALID_CLASS :
01587 return "SPAPI_E_INVALID_CLASS ";
01588 case SPAPI_E_DEVINST_ALREADY_EXISTS :
01589 return "SPAPI_E_DEVINST_ALREADY_EXISTS ";
01590 case SPAPI_E_DEVINFO_NOT_REGISTERED :
01591 return "SPAPI_E_DEVINFO_NOT_REGISTERED ";
01592 case SPAPI_E_INVALID_REG_PROPERTY :
01593 return "SPAPI_E_INVALID_REG_PROPERTY ";
01594 case SPAPI_E_NO_INF :
01595 return "SPAPI_E_NO_INF ";
01596 case SPAPI_E_NO_SUCH_DEVINST :
01597 return "SPAPI_E_NO_SUCH_DEVINST ";
01598 case SPAPI_E_CANT_LOAD_CLASS_ICON :
01599 return "SPAPI_E_CANT_LOAD_CLASS_ICON ";
01600 case SPAPI_E_INVALID_CLASS_INSTALLER :
01601 return "SPAPI_E_INVALID_CLASS_INSTALLER ";
01602 case SPAPI_E_DI_DO_DEFAULT :
01603 return "SPAPI_E_DI_DO_DEFAULT ";
01604 case SPAPI_E_DI_NOFILECOPY :
01605 return "SPAPI_E_DI_NOFILECOPY ";
01606 case SPAPI_E_INVALID_HWPROFILE :
01607 return "SPAPI_E_INVALID_HWPROFILE ";
01608 case SPAPI_E_NO_DEVICE_SELECTED :
01609 return "SPAPI_E_NO_DEVICE_SELECTED ";
01610 case SPAPI_E_DEVINFO_LIST_LOCKED :
01611 return "SPAPI_E_DEVINFO_LIST_LOCKED ";
01612 case SPAPI_E_DEVINFO_DATA_LOCKED :
01613 return "SPAPI_E_DEVINFO_DATA_LOCKED ";
01614 case SPAPI_E_DI_BAD_PATH :
01615 return "SPAPI_E_DI_BAD_PATH ";
01616 case SPAPI_E_NO_CLASSINSTALL_PARAMS :
01617 return "SPAPI_E_NO_CLASSINSTALL_PARAMS ";
01618 case SPAPI_E_FILEQUEUE_LOCKED :
01619 return "SPAPI_E_FILEQUEUE_LOCKED ";
01620 case SPAPI_E_BAD_SERVICE_INSTALLSECT :
01621 return "SPAPI_E_BAD_SERVICE_INSTALLSECT ";
01622 case SPAPI_E_NO_CLASS_DRIVER_LIST :
01623 return "SPAPI_E_NO_CLASS_DRIVER_LIST ";
01624 case SPAPI_E_NO_ASSOCIATED_SERVICE :
01625 return "SPAPI_E_NO_ASSOCIATED_SERVICE ";
01626 case SPAPI_E_NO_DEFAULT_DEVICE_INTERFACE :
01627 return "SPAPI_E_NO_DEFAULT_DEVICE_INTERFACE ";
01628 case SPAPI_E_DEVICE_INTERFACE_ACTIVE :
01629 return "SPAPI_E_DEVICE_INTERFACE_ACTIVE ";
01630 case SPAPI_E_DEVICE_INTERFACE_REMOVED :
01631 return "SPAPI_E_DEVICE_INTERFACE_REMOVED ";
01632 case SPAPI_E_BAD_INTERFACE_INSTALLSECT :
01633 return "SPAPI_E_BAD_INTERFACE_INSTALLSECT ";
01634 case SPAPI_E_NO_SUCH_INTERFACE_CLASS :
01635 return "SPAPI_E_NO_SUCH_INTERFACE_CLASS ";
01636 case SPAPI_E_INVALID_REFERENCE_STRING :
01637 return "SPAPI_E_INVALID_REFERENCE_STRING ";
01638 case SPAPI_E_INVALID_MACHINENAME :
01639 return "SPAPI_E_INVALID_MACHINENAME ";
01640 case SPAPI_E_REMOTE_COMM_FAILURE :
01641 return "SPAPI_E_REMOTE_COMM_FAILURE ";
01642 case SPAPI_E_MACHINE_UNAVAILABLE :
01643 return "SPAPI_E_MACHINE_UNAVAILABLE ";
01644 case SPAPI_E_NO_CONFIGMGR_SERVICES :
01645 return "SPAPI_E_NO_CONFIGMGR_SERVICES ";
01646 case SPAPI_E_INVALID_PROPPAGE_PROVIDER :
01647 return "SPAPI_E_INVALID_PROPPAGE_PROVIDER ";
01648 case SPAPI_E_NO_SUCH_DEVICE_INTERFACE :
01649 return "SPAPI_E_NO_SUCH_DEVICE_INTERFACE ";
01650 case SPAPI_E_DI_POSTPROCESSING_REQUIRED :
01651 return "SPAPI_E_DI_POSTPROCESSING_REQUIRED ";
01652 case SPAPI_E_INVALID_COINSTALLER :
01653 return "SPAPI_E_INVALID_COINSTALLER ";
01654 case SPAPI_E_NO_COMPAT_DRIVERS :
01655 return "SPAPI_E_NO_COMPAT_DRIVERS ";
01656 case SPAPI_E_NO_DEVICE_ICON :
01657 return "SPAPI_E_NO_DEVICE_ICON ";
01658 case SPAPI_E_INVALID_INF_LOGCONFIG :
01659 return "SPAPI_E_INVALID_INF_LOGCONFIG ";
01660 case SPAPI_E_DI_DONT_INSTALL :
01661 return "SPAPI_E_DI_DONT_INSTALL ";
01662 case SPAPI_E_INVALID_FILTER_DRIVER :
01663 return "SPAPI_E_INVALID_FILTER_DRIVER ";
01664 case SPAPI_E_ERROR_NOT_INSTALLED :
01665 return "SPAPI_E_ERROR_NOT_INSTALLED ";
01666
01667 default:
01668 static char buff[1000];
01669 sprintf(buff, "Unrecognized error value: %08X\0", error);
01670
01671 return buff;
01672 }
01673 }