Subversion Repositories spacemission

Rev

Rev 1 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. unit DXETable;
  2.  
  3. interface
  4.  
  5. {$INCLUDE DelphiXcfg.inc}
  6.  
  7. uses
  8.   Windows, SysUtils,
  9. {$IfDef StandardDX}
  10.   {$ifdef DX7}
  11.   DirectDraw, Direct3D,DirectInput,DirectPlay,DirectSound;
  12.   {$else}
  13.   {$IfDef DX9}
  14.   DirectDraw, Direct3D9, Direct3D, D3DX9, {Direct3D8,} DX7toDX8, DirectInput, DirectPlay8, DirectSound;
  15. //  {$Else}
  16. //  {$IfDef DX81}
  17. //  D3DX8, Direct3D8, DirectInput8, DirectXGraphics, DX7toDX8, DirectPlay8;
  18. //  {$Else}
  19. //  DirectInput, Direct3D, Direct3DRM, DirectPlay;
  20.   {$EndIf}
  21.   {$EndIf}
  22. {$Else}
  23.   DirectX;
  24. {$EndIf}
  25.  
  26.  
  27. function WindowsErrorMsg(ErrorCode: HRESULT): string;
  28. function DDrawErrorMsg(ErrorCode: HRESULT): string;
  29. function D3DErrorMsg(ErrorCode: HRESULT): string;
  30. {$IFDEF D3DRM}
  31. function D3DRMErrorMsg(ErrorCode: HRESULT): string;
  32. {$ENDIF}
  33. function DSoundErrorMsg(ErrorCode: HRESULT): string;
  34. function DInputErrorMsg(ErrorCode: HRESULT): string;
  35. function DPlayErrorMsg(ErrorCode: HRESULT): string;
  36.  
  37. implementation
  38.  
  39. uses DXConsts;
  40.  
  41. function WindowsErrorMsg(ErrorCode: HRESULT): string;
  42. var
  43.   Buf: array [Byte] of Char;
  44. begin
  45.   Result := '';
  46.   if ErrorCode<>0 then
  47.   begin
  48.     if FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, nil,
  49.       ErrorCode, LOCALE_USER_DEFAULT, Buf, sizeof(Buf), nil)<>0 then
  50.     begin
  51.       Result := Buf;
  52.       {  Last #13#10 is deleted.  }
  53.       while Copy(Result, Length(Result)-1, 2)=#13#10 do
  54.         Result := Copy(Result, 1, Length(Result)-2);
  55.     end else
  56.       Result := Format(SUnknownError, [ErrorCode]);
  57.   end;
  58. end;
  59.  
  60. function DDrawErrorMsg(ErrorCode: HRESULT): string;
  61. begin              
  62.   case ErrorCode of
  63.     DD_OK                               : Result := 'DD_OK';
  64.     DDERR_ALREADYINITIALIZED            : Result := 'DDERR_ALREADYINITIALIZED';
  65.     DDERR_BLTFASTCANTCLIP               : Result := 'DDERR_BLTFASTCANTCLIP';
  66.     DDERR_CANNOTATTACHSURFACE           : Result := 'DDERR_CANNOTATTACHSURFACE';
  67.     DDERR_CANTCREATEDC                  : Result := 'DDERR_CANTCREATEDC';
  68.     DDERR_CANTDUPLICATE                 : Result := 'DDERR_CANTDUPLICATE';
  69.     DDERR_CLIPPERISUSINGHWND            : Result := 'DDERR_CLIPPERISUSINGHWND';
  70.     DDERR_COLORKEYNOTSET                : Result := 'DDERR_COLORKEYNOTSET';
  71.     DDERR_CURRENTLYNOTAVAIL             : Result := 'DDERR_CURRENTLYNOTAVAIL';
  72.     DDERR_DIRECTDRAWALREADYCREATED      : Result := 'DDERR_DIRECTDRAWALREADYCREATED';
  73.     DDERR_EXCEPTION                     : Result := 'DDERR_EXCEPTION';
  74.     DDERR_EXCLUSIVEMODEALREADYSET       : Result := 'DDERR_EXCLUSIVEMODEALREADYSET';
  75.     DDERR_GENERIC                       : Result := 'DDERR_GENERIC';
  76.     DDERR_HEIGHTALIGN                   : Result := 'DDERR_HEIGHTALIGN';
  77.     DDERR_HWNDALREADYSET                : Result := 'DDERR_HWNDALREADYSET';
  78.     DDERR_HWNDSUBCLASSED                : Result := 'DDERR_HWNDSUBCLASSED';
  79.     DDERR_IMPLICITLYCREATED             : Result := 'DDERR_IMPLICITLYCREATED';
  80.     DDERR_INCOMPATIBLEPRIMARY           : Result := 'DDERR_INCOMPATIBLEPRIMARY';
  81.     DDERR_INVALIDCAPS                   : Result := 'DDERR_INVALIDCAPS';
  82.     DDERR_INVALIDCLIPLIST               : Result := 'DDERR_INVALIDCLIPLIST';
  83.     DDERR_INVALIDDIRECTDRAWGUID         : Result := 'DDERR_INVALIDDIRECTDRAWGUID';
  84.     DDERR_INVALIDMODE                   : Result := 'DDERR_INVALIDMODE';
  85.     DDERR_INVALIDOBJECT                 : Result := 'DDERR_INVALIDOBJECT';
  86.     DDERR_INVALIDPARAMS                 : Result := 'DDERR_INVALIDPARAMS';
  87.     DDERR_INVALIDPIXELFORMAT            : Result := 'DDERR_INVALIDPIXELFORMAT';
  88.     DDERR_INVALIDPOSITION               : Result := 'DDERR_INVALIDPOSITION';
  89.     DDERR_INVALIDRECT                   : Result := 'DDERR_INVALIDRECT';
  90.     DDERR_LOCKEDSURFACES                : Result := 'DDERR_LOCKEDSURFACES';
  91.     DDERR_NO3D                          : Result := 'DDERR_NO3D';
  92.     DDERR_NOALPHAHW                     : Result := 'DDERR_NOALPHAHW';
  93.     DDERR_NOBLTHW                       : Result := 'DDERR_NOBLTHW';
  94.     DDERR_NOCLIPLIST                    : Result := 'DDERR_NOCLIPLIST';
  95.     DDERR_NOCLIPPERATTACHED             : Result := 'DDERR_NOCLIPPERATTACHED';
  96.     DDERR_NOCOLORCONVHW                 : Result := 'DDERR_NOCOLORCONVHW';
  97.     DDERR_NOCOLORKEY                    : Result := 'DDERR_NOCOLORKEY';
  98.     DDERR_NOCOLORKEYHW                  : Result := 'DDERR_NOCOLORKEYHW';
  99.     DDERR_NOCOOPERATIVELEVELSET         : Result := 'DDERR_NOCOOPERATIVELEVELSET';
  100.     DDERR_NODC                          : Result := 'DDERR_NODC';
  101.     DDERR_NODDROPSHW                    : Result := 'DDERR_NODDROPSHW';
  102.     DDERR_NODIRECTDRAWHW                : Result := 'DDERR_NODIRECTDRAWHW';
  103.     DDERR_NOEMULATION                   : Result := 'DDERR_NOEMULATION';
  104.     DDERR_NOEXCLUSIVEMODE               : Result := 'DDERR_NOEXCLUSIVEMODE';
  105.     DDERR_NOFLIPHW                      : Result := 'DDERR_NOFLIPHW';
  106.     DDERR_NOGDI                         : Result := 'DDERR_NOGDI';
  107.     DDERR_NOHWND                        : Result := 'DDERR_NOHWND';
  108.     DDERR_NOMIRRORHW                    : Result := 'DDERR_NOMIRRORHW';
  109.     DDERR_NOOVERLAYDEST                 : Result := 'DDERR_NOOVERLAYDEST';
  110.     DDERR_NOOVERLAYHW                   : Result := 'DDERR_NOOVERLAYHW';
  111.     DDERR_NOPALETTEATTACHED             : Result := 'DDERR_NOPALETTEATTACHED';
  112.     DDERR_NOPALETTEHW                   : Result := 'DDERR_NOPALETTEHW';
  113.     DDERR_NORASTEROPHW                  : Result := 'DDERR_NORASTEROPHW';
  114.     DDERR_NOROTATIONHW                  : Result := 'DDERR_NOROTATIONHW';
  115.     DDERR_NOSTRETCHHW                   : Result := 'DDERR_NOSTRETCHHW';
  116.     DDERR_NOT4BITCOLOR                  : Result := 'DDERR_NOT4BITCOLOR';
  117.     DDERR_NOT4BITCOLORINDEX             : Result := 'DDERR_NOT4BITCOLORINDEX';
  118.     DDERR_NOT8BITCOLOR                  : Result := 'DDERR_NOT8BITCOLOR';
  119.     DDERR_NOTAOVERLAYSURFACE            : Result := 'DDERR_NOTAOVERLAYSURFACE';
  120.     DDERR_NOTEXTUREHW                   : Result := 'DDERR_NOTEXTUREHW';
  121.     DDERR_NOTFLIPPABLE                  : Result := 'DDERR_NOTFLIPPABLE';
  122.     DDERR_NOTFOUND                      : Result := 'DDERR_NOTFOUND';
  123.     DDERR_NOTLOCKED                     : Result := 'DDERR_NOTLOCKED';
  124.     DDERR_NOTPALETTIZED                 : Result := 'DDERR_NOTPALETTIZED';
  125.     DDERR_NOVSYNCHW                     : Result := 'DDERR_NOVSYNCHW';
  126.     DDERR_NOZBUFFERHW                   : Result := 'DDERR_NOZBUFFERHW';
  127.     DDERR_NOZOVERLAYHW                  : Result := 'DDERR_NOZOVERLAYHW';
  128.     DDERR_OUTOFCAPS                     : Result := 'DDERR_OUTOFCAPS';
  129.     DDERR_OUTOFMEMORY                   : Result := 'DDERR_OUTOFMEMORY';
  130.     DDERR_OUTOFVIDEOMEMORY              : Result := 'DDERR_OUTOFVIDEOMEMORY';
  131.     DDERR_OVERLAYCANTCLIP               : Result := 'DDERR_OVERLAYCANTCLIP';
  132.     DDERR_OVERLAYCOLORKEYONLYONEACTIVE  : Result := 'DDERR_OVERLAYCOLORKEYONLYONEACTIVE';
  133.     DDERR_OVERLAYNOTVISIBLE             : Result := 'DDERR_OVERLAYNOTVISIBLE';
  134.     DDERR_PALETTEBUSY                   : Result := 'DDERR_PALETTEBUSY';
  135.     DDERR_PRIMARYSURFACEALREADYEXISTS   : Result := 'DDERR_PRIMARYSURFACEALREADYEXISTS';
  136.     DDERR_REGIONTOOSMALL                : Result := 'DDERR_REGIONTOOSMALL';
  137.     DDERR_SURFACEALREADYATTACHED        : Result := 'DDERR_SURFACEALREADYATTACHED';
  138.     DDERR_SURFACEALREADYDEPENDENT       : Result := 'DDERR_SURFACEALREADYDEPENDENT';
  139.     DDERR_SURFACEBUSY                   : Result := 'DDERR_SURFACEBUSY';
  140.     DDERR_SURFACEISOBSCURED             : Result := 'DDERR_SURFACEISOBSCURED';
  141.     DDERR_SURFACELOST                   : Result := 'DDERR_SURFACELOST';
  142.     DDERR_SURFACENOTATTACHED            : Result := 'DDERR_SURFACENOTATTACHED';
  143.     DDERR_TOOBIGHEIGHT                  : Result := 'DDERR_TOOBIGHEIGHT';
  144.     DDERR_TOOBIGSIZE                    : Result := 'DDERR_TOOBIGSIZE';
  145.     DDERR_TOOBIGWIDTH                   : Result := 'DDERR_TOOBIGWIDTH';
  146.     DDERR_UNSUPPORTED                   : Result := 'DDERR_UNSUPPORTED';
  147.     DDERR_UNSUPPORTEDFORMAT             : Result := 'DDERR_UNSUPPORTEDFORMAT';
  148.     DDERR_UNSUPPORTEDMASK               : Result := 'DDERR_UNSUPPORTEDMASK';
  149.     DDERR_VERTICALBLANKINPROGRESS       : Result := 'DDERR_VERTICALBLANKINPROGRESS';
  150.     DDERR_WASSTILLDRAWING               : Result := 'DDERR_WASSTILLDRAWING';
  151.     DDERR_WRONGMODE                     : Result := 'DDERR_WRONGMODE';
  152.     DDERR_XALIGN                        : Result := 'DDERR_XALIGN';
  153.   else
  154.     Result := WindowsErrorMsg(ErrorCode);
  155.   end;
  156. end;
  157.  
  158. function D3DErrorMsg(ErrorCode: HRESULT): string;
  159. begin
  160.   case ErrorCode of
  161.     D3D_OK                              : Result := 'D3D_OK';
  162.     D3DERR_BADMAJORVERSION              : Result := 'D3DERR_BADMAJORVERSION';
  163.     D3DERR_BADMINORVERSION              : Result := 'D3DERR_BADMINORVERSION';
  164.     D3DERR_INVALID_DEVICE               : Result := 'D3DERR_INVALID_DEVICE';
  165.     D3DERR_INITFAILED                   : Result := 'D3DERR_INITFAILED';
  166.     D3DERR_DEVICEAGGREGATED             : Result := 'D3DERR_DEVICEAGGREGATED';
  167.     D3DERR_EXECUTE_CREATE_FAILED        : Result := 'D3DERR_EXECUTE_CREATE_FAILED';
  168.     D3DERR_EXECUTE_DESTROY_FAILED       : Result := 'D3DERR_EXECUTE_DESTROY_FAILED';
  169.     D3DERR_EXECUTE_LOCK_FAILED          : Result := 'D3DERR_EXECUTE_LOCK_FAILED';
  170.     D3DERR_EXECUTE_UNLOCK_FAILED        : Result := 'D3DERR_EXECUTE_UNLOCK_FAILED';
  171.     D3DERR_EXECUTE_LOCKED               : Result := 'D3DERR_EXECUTE_LOCKED';
  172.     D3DERR_EXECUTE_NOT_LOCKED           : Result := 'D3DERR_EXECUTE_NOT_LOCKED';
  173.     D3DERR_EXECUTE_FAILED               : Result := 'D3DERR_EXECUTE_FAILED';
  174.     D3DERR_EXECUTE_CLIPPED_FAILED       : Result := 'D3DERR_EXECUTE_CLIPPED_FAILED';
  175.     D3DERR_TEXTURE_NO_SUPPORT           : Result := 'D3DERR_TEXTURE_NO_SUPPORT';
  176.     D3DERR_TEXTURE_CREATE_FAILED        : Result := 'D3DERR_TEXTURE_CREATE_FAILED';
  177.     D3DERR_TEXTURE_DESTROY_FAILED       : Result := 'D3DERR_TEXTURE_DESTROY_FAILED';
  178.     D3DERR_TEXTURE_LOCK_FAILED          : Result := 'D3DERR_TEXTURE_LOCK_FAILED';
  179.     D3DERR_TEXTURE_UNLOCK_FAILED        : Result := 'D3DERR_TEXTURE_UNLOCK_FAILED';
  180.     D3DERR_TEXTURE_LOAD_FAILED          : Result := 'D3DERR_TEXTURE_LOAD_FAILED';
  181.     D3DERR_TEXTURE_SWAP_FAILED          : Result := 'D3DERR_TEXTURE_SWAP_FAILED';
  182.     D3DERR_TEXTURE_LOCKED               : Result := 'D3DERR_TEXTURE_LOCKED';
  183.     D3DERR_TEXTURE_NOT_LOCKED           : Result := 'D3DERR_TEXTURE_NOT_LOCKED';
  184.     D3DERR_TEXTURE_GETSURF_FAILED       : Result := 'D3DERR_TEXTURE_GETSURF_FAILED';
  185.     D3DERR_MATRIX_CREATE_FAILED         : Result := 'D3DERR_MATRIX_CREATE_FAILED';
  186.     D3DERR_MATRIX_DESTROY_FAILED        : Result := 'D3DERR_MATRIX_DESTROY_FAILED';
  187.     D3DERR_MATRIX_SETDATA_FAILED        : Result := 'D3DERR_MATRIX_SETDATA_FAILED';
  188.     D3DERR_MATRIX_GETDATA_FAILED        : Result := 'D3DERR_MATRIX_GETDATA_FAILED';
  189.     D3DERR_SETVIEWPORTDATA_FAILED       : Result := 'D3DERR_SETVIEWPORTDATA_FAILED';
  190.  
  191.     D3DERR_INVALIDCURRENTVIEWPORT       : Result := 'D3DERR_INVALIDCURRENTVIEWPORT';
  192.     D3DERR_INVALIDPRIMITIVETYPE         : Result := 'D3DERR_INVALIDPRIMITIVETYPE';
  193.     D3DERR_INVALIDVERTEXTYPE            : Result := 'D3DERR_INVALIDVERTEXTYPE';
  194.     D3DERR_TEXTURE_BADSIZE              : Result := 'D3DERR_TEXTURE_BADSIZE';
  195.     D3DERR_INVALIDRAMPTEXTURE           : Result := 'D3DERR_INVALIDRAMPTEXTURE';
  196.     D3DERR_MATERIAL_CREATE_FAILED       : Result := 'D3DERR_MATERIAL_CREATE_FAILED';
  197.     D3DERR_MATERIAL_DESTROY_FAILED      : Result := 'D3DERR_MATERIAL_DESTROY_FAILED';
  198.     D3DERR_MATERIAL_SETDATA_FAILED      : Result := 'D3DERR_MATERIAL_SETDATA_FAILED';
  199.     D3DERR_MATERIAL_GETDATA_FAILED      : Result := 'D3DERR_MATERIAL_GETDATA_FAILED';
  200.     D3DERR_INVALIDPALETTE               : Result := 'D3DERR_INVALIDPALETTE';
  201.  
  202.     D3DERR_ZBUFF_NEEDS_SYSTEMMEMORY     : Result := 'D3DERR_ZBUFF_NEEDS_SYSTEMMEMORY';
  203.     D3DERR_ZBUFF_NEEDS_VIDEOMEMORY      : Result := 'D3DERR_ZBUFF_NEEDS_VIDEOMEMORY';
  204.     D3DERR_SURFACENOTINVIDMEM           : Result := 'D3DERR_SURFACENOTINVIDMEM';
  205.     D3DERR_LIGHT_SET_FAILED             : Result := 'D3DERR_LIGHT_SET_FAILED';
  206.     D3DERR_LIGHTHASVIEWPORT             : Result := 'D3DERR_LIGHTHASVIEWPORT';
  207.  
  208.     D3DERR_LIGHTNOTINTHISVIEWPORT       : Result := 'D3DERR_LIGHTNOTINTHISVIEWPORT';
  209.     D3DERR_SCENE_IN_SCENE               : Result := 'D3DERR_SCENE_IN_SCENE';
  210.     D3DERR_SCENE_NOT_IN_SCENE           : Result := 'D3DERR_SCENE_NOT_IN_SCENE';
  211.  
  212.  
  213.     D3DERR_SCENE_BEGIN_FAILED           : Result := 'D3DERR_SCENE_BEGIN_FAILED';
  214.     D3DERR_SCENE_END_FAILED             : Result := 'D3DERR_SCENE_END_FAILED';
  215.     D3DERR_INBEGIN                      : Result := 'D3DERR_INBEGIN';
  216.     D3DERR_NOTINBEGIN                   : Result := 'D3DERR_NOTINBEGIN';
  217.     D3DERR_NOVIEWPORTS                  : Result := 'D3DERR_NOVIEWPORTS';
  218.     D3DERR_VIEWPORTDATANOTSET           : Result := 'D3DERR_VIEWPORTDATANOTSET';
  219.     D3DERR_VIEWPORTHASNODEVICE          : Result := 'D3DERR_VIEWPORTHASNODEVICE';
  220.  
  221.     D3DERR_NOCURRENTVIEWPORT            : Result := 'D3DERR_NOCURRENTVIEWPORT';
  222.   else
  223.     Result := WindowsErrorMsg(ErrorCode);                                                          
  224.   end;
  225. end;
  226. {$IFDEF D3DRM}
  227. function D3DRMErrorMsg(ErrorCode: HRESULT): string;
  228. begin
  229.   case ErrorCode of
  230.     D3DRM_OK                            : Result := 'D3DRM_OK';
  231.     D3DRMERR_BADALLOC                   : Result := 'D3DRMERR_BADALLOC';
  232.     D3DRMERR_BADDEVICE                  : Result := 'D3DRMERR_BADDEVICE';
  233.     D3DRMERR_BADFILE                    : Result := 'D3DRMERR_BADFILE';
  234.     D3DRMERR_BADMAJORVERSION            : Result := 'D3DRMERR_BADMAJORVERSION';
  235.     D3DRMERR_BADMINORVERSION            : Result := 'D3DRMERR_BADMINORVERSION';
  236.     D3DRMERR_BADOBJECT                  : Result := 'D3DRMERR_BADOBJECT';
  237.     D3DRMERR_BADTYPE                    : Result := 'D3DRMERR_BADTYPE';
  238.     D3DRMERR_BADVALUE                   : Result := 'D3DRMERR_BADVALUE';
  239.     D3DRMERR_FACEUSED                   : Result := 'D3DRMERR_FACEUSED';
  240.     D3DRMERR_FILENOTFOUND               : Result := 'D3DRMERR_FILENOTFOUND';
  241.     D3DRMERR_NOTDONEYET                 : Result := 'D3DRMERR_NOTDONEYET';
  242.     D3DRMERR_NOTFOUND                   : Result := 'D3DRMERR_NOTFOUND';
  243.     D3DRMERR_UNABLETOEXECUTE            : Result := 'D3DRMERR_UNABLETOEXECUTE';
  244.   else
  245.     Result := WindowsErrorMsg(ErrorCode);
  246.   end;
  247. end;
  248. {$ENDIF}
  249. function DSoundErrorMsg(ErrorCode: HRESULT): string;
  250. begin
  251.   case ErrorCode of
  252.     DS_OK                               : Result := 'DS_OK';
  253.     DSERR_ALLOCATED                     : Result := 'DSERR_ALLOCATED';
  254.     DSERR_ALREADYINITIALIZED            : Result := 'DSERR_ALREADYINITIALIZED';
  255.     DSERR_BADFORMAT                     : Result := 'DSERR_BADFORMAT';
  256.     DSERR_BUFFERLOST                    : Result := 'DSERR_BUFFERLOST';
  257.     DSERR_CONTROLUNAVAIL                : Result := 'DSERR_CONTROLUNAVAIL';
  258.     DSERR_GENERIC                       : Result := 'DSERR_GENERIC';
  259.     DSERR_INVALIDPARAM                  : Result := 'DSERR_INVALIDPARAM';
  260.     DSERR_INVALIDCALL                   : Result := 'DSERR_INVALIDCALL';
  261.     DSERR_NOAGGREGATION                 : Result := 'DSERR_NOAGGREGATION';
  262.     DSERR_NODRIVER                      : Result := 'DSERR_NODRIVER';
  263.     DSERR_OUTOFMEMORY                   : Result := 'DSERR_OUTOFMEMORY';
  264.     DSERR_PRIOLEVELNEEDED               : Result := 'DSERR_PRIOLEVELNEEDED';
  265.     DSERR_UNSUPPORTED                   : Result := 'DSERR_UNSUPPORTED';
  266.   else
  267.     Result := WindowsErrorMsg(ErrorCode);
  268.   end;
  269. end;
  270.  
  271. function DInputErrorMsg(ErrorCode: HRESULT): string;
  272. begin
  273.   case ErrorCode of
  274.     DI_OK                               : Result := 'DI_OK';
  275.     DI_NOTATTACHED                      : Result := 'DI_NOTATTACHED, DI_BUFFEROVERFLOW, DI_PROPNOEFFECT, DI_POLLEDDEVICE';
  276.     DIERR_OLDDIRECTINPUTVERSION         : Result := 'DIERR_OLDDIRECTINPUTVERSION';
  277.     DIERR_BETADIRECTINPUTVERSION        : Result := 'DIERR_BETADIRECTINPUTVERSION';
  278.     DIERR_BADDRIVERVER                  : Result := 'DIERR_BADDRIVERVER';
  279.     DIERR_DEVICENOTREG                  : Result := 'DIERR_DEVICENOTREG';
  280.     DIERR_OBJECTNOTFOUND                : Result := 'DIERR_OBJECTNOTFOUND';
  281.     DIERR_INVALIDPARAM                  : Result := 'DIERR_INVALIDPARAM';
  282.     DIERR_NOINTERFACE                   : Result := 'DIERR_NOINTERFACE';
  283.     DIERR_GENERIC                       : Result := 'DIERR_GENERIC';
  284.     DIERR_OUTOFMEMORY                   : Result := 'DIERR_OUTOFMEMORY';
  285.     DIERR_UNSUPPORTED                   : Result := 'DIERR_UNSUPPORTED';
  286.     DIERR_NOTINITIALIZED                : Result := 'DIERR_NOTINITIALIZED';
  287.     DIERR_ALREADYINITIALIZED            : Result := 'DIERR_ALREADYINITIALIZED';
  288.     DIERR_NOAGGREGATION                 : Result := 'DIERR_NOAGGREGATION';
  289.     DIERR_OTHERAPPHASPRIO               : Result := 'DIERR_OTHERAPPHASPRIO, DIERR_READONLY, DIERR_HANDLEEXISTS';
  290.     DIERR_INPUTLOST                     : Result := 'DIERR_INPUTLOST';
  291.     DIERR_ACQUIRED                      : Result := 'DIERR_ACQUIRED';
  292.     DIERR_NOTACQUIRED                   : Result := 'DIERR_NOTACQUIRED';
  293.     HRESULT(E_PENDING)                  : Result := 'E_PENDING';
  294.   else
  295.     Result := WindowsErrorMsg(ErrorCode);
  296.   end;
  297. end;
  298. {$IfDef DX9}
  299. function DPlayErrorMsg(ErrorCode: HRESULT): string;
  300. begin
  301.   case ErrorCode of
  302.     DPN_OK                               : Result := 'DPN_OK';
  303.     DPNERR_ALREADYINITIALIZED            : Result := 'DPNERR_ALREADYINITIALIZED';
  304.     //DPNERR_ACCESSDENIED                  : Result := 'DPNERR_ACCESSDENIED';
  305.     //DPNERR_ACTIVEPLAYERS                 : Result := 'DPNERR_ACTIVEPLAYERS';
  306.     DPNERR_BUFFERTOOSMALL                : Result := 'DPNERR_BUFFERTOOSMALL';
  307.     //DPNERR_CANTADDPLAYER                 : Result := 'DPNERR_CANTADDPLAYER';
  308.     DPNERR_CANTCREATEGROUP               : Result := 'DPNERR_CANTCREATEGROUP';
  309.     DPNERR_CANTCREATEPLAYER              : Result := 'DPNERR_CANTCREATEPLAYER';
  310.     //DPNERR_CANTCREATESESSION             : Result := 'DPNERR_CANTCREATESESSION';
  311.     //DPNERR_CAPSNOTAVAILABLEYET           : Result := 'DPNERR_CAPSNOTAVAILABLEYET';
  312.     DPNERR_EXCEPTION                     : Result := 'DPNERR_EXCEPTION';
  313.     DPNERR_GENERIC                       : Result := 'DPNERR_GENERIC';
  314.     DPNERR_INVALIDFLAGS                  : Result := 'DPNERR_INVALIDFLAGS';
  315.     DPNERR_INVALIDOBJECT                 : Result := 'DPNERR_INVALIDOBJECT';
  316.     DPNERR_INVALIDPARAM                  : Result := 'DPNERR_INVALIDPARAM, DPNERR_INVALIDPARAMS';
  317.     DPNERR_INVALIDPLAYER                 : Result := 'DPNERR_INVALIDPLAYER';
  318.     DPNERR_INVALIDGROUP                  : Result := 'DPNERR_INVALIDGROUP';
  319.     DPNERR_NOCAPS                        : Result := 'DPNERR_NOCAPS';
  320.     DPNERR_NOCONNECTION                  : Result := 'DPNERR_NOCONNECTION';
  321.     //DPNERR_NOMEMORY                      : Result := 'DPNERR_NOMEMORY, DPNERR_OUTOFMEMORY';
  322.     //DPNERR_NOMESSAGES                    : Result := 'DPNERR_NOMESSAGES';
  323.     //DPNERR_NONAMESERVERFOUND             : Result := 'DPNERR_NONAMESERVERFOUND';
  324.     //DPNERR_NOPLAYERS                     : Result := 'DPNERR_NOPLAYERS';
  325.     //DPNERR_NOSESSIONS                    : Result := 'DPNERR_NOSESSIONS';
  326.     DPNERR_PENDING                       : Result := 'DPNERR_PENDING';
  327.     //DPNERR_SENDTOOBIG                    : Result := 'DPNERR_SENDTOOBIG';
  328.     //DPNERR_TIMEOUT                       : Result := 'DPNERR_TIMEOUT';
  329.     //DPNERR_UNAVAILABLE                   : Result := 'DPNERR_UNAVAILABLE';
  330.     DPNERR_UNSUPPORTED                   : Result := 'DPNERR_UNSUPPORTED';
  331.     //DPNERR_BUSY                          : Result := 'DPNERR_BUSY';
  332.     DPNERR_USERCANCEL                    : Result := 'DPNERR_USERCANCEL';
  333.     DPNERR_NOINTERFACE                   : Result := 'DPNERR_NOINTERFACE';
  334.     //DPNERR_CANNOTCREATESERVER            : Result := 'DPNERR_CANNOTCREATESERVER';
  335.     DPNERR_PLAYERLOST                    : Result := 'DPNERR_PLAYERLOST';
  336.     //DPNERR_SESSIONLOST                   : Result := 'DPNERR_SESSIONLOST';
  337.     DPNERR_UNINITIALIZED                 : Result := 'DPNERR_UNINITIALIZED';
  338.     //DPNERR_NONEWPLAYERS                  : Result := 'DPNERR_NONEWPLAYERS';
  339.     DPNERR_INVALIDPASSWORD               : Result := 'DPNERR_INVALIDPASSWORD';
  340.     DPNERR_CONNECTING                    : Result := 'DPNERR_CONNECTING';
  341.     //DPNERR_BUFFERTOOLARGE                : Result := 'DPNERR_BUFFERTOOLARGE';
  342.     //DPNERR_CANTCREATEPROCESS             : Result := 'DPNERR_CANTCREATEPROCESS';
  343.     //DPNERR_APPNOTSTARTED                 : Result := 'DPNERR_APPNOTSTARTED';
  344.     DPNERR_INVALIDINTERFACE              : Result := 'DPNERR_INVALIDINTERFACE';
  345.     //DPNERR_NOSERVICEPROVIDER             : Result := 'DPNERR_NOSERVICEPROVIDER';
  346.     //DPNERR_UNKNOWNAPPLICATION            : Result := 'DPNERR_UNKNOWNAPPLICATION';
  347.     //DPNERR_NOTLOBBIED                    : Result := 'DPNERR_NOTLOBBIED';
  348.     //DPNERR_SERVICEPROVIDERLOADED         : Result := 'DPNERR_SERVICEPROVIDERLOADED';
  349.     DPNERR_NOTREGISTERED                 : Result := 'DPNERR_NOTREGISTERED';
  350. // Security related errors
  351.     //DPNERR_AUTHENTICATIONFAILED          : Result := 'DPNERR_AUTHENTICATIONFAILED';
  352.     //DPNERR_CANTLOADSSPI                  : Result := 'DPNERR_CANTLOADSSPI';
  353.     //DPNERR_ENCRYPTIONFAILED              : Result := 'DPNERR_ENCRYPTIONFAILED';
  354.     //DPNERR_SIGNFAILED                    : Result := 'DPNERR_SIGNFAILED';
  355.     //DPNERR_CANTLOADSECURITYPACKAGE       : Result := 'DPNERR_CANTLOADSECURITYPACKAGE';
  356.     //DPNERR_ENCRYPTIONNOTSUPPORTED        : Result := 'DPNERR_ENCRYPTIONNOTSUPPORTED';
  357.     //DPNERR_CANTLOADCAPI                  : Result := 'DPNERR_CANTLOADCAPI';
  358.     //DPNERR_NOTLOGGEDIN                   : Result := 'DPNERR_NOTLOGGEDIN';
  359.     //DPNERR_LOGONDENIED                   : Result := 'DPNERR_LOGONDENIED';
  360.   else
  361.     Result := WindowsErrorMsg(ErrorCode);
  362.   end;
  363. end;
  364. {$Else}
  365. function DPlayErrorMsg(ErrorCode: HRESULT): string;
  366. begin
  367.   case ErrorCode of
  368.     DP_OK                               : Result := 'DP_OK';
  369.     DPERR_ALREADYINITIALIZED            : Result := 'DPERR_ALREADYINITIALIZED';
  370.     DPERR_ACCESSDENIED                  : Result := 'DPERR_ACCESSDENIED';
  371.     DPERR_ACTIVEPLAYERS                 : Result := 'DPERR_ACTIVEPLAYERS';
  372.     DPERR_BUFFERTOOSMALL                : Result := 'DPERR_BUFFERTOOSMALL';
  373.     DPERR_CANTADDPLAYER                 : Result := 'DPERR_CANTADDPLAYER';
  374.     DPERR_CANTCREATEGROUP               : Result := 'DPERR_CANTCREATEGROUP';
  375.     DPERR_CANTCREATEPLAYER              : Result := 'DPERR_CANTCREATEPLAYER';
  376.     DPERR_CANTCREATESESSION             : Result := 'DPERR_CANTCREATESESSION';
  377.     DPERR_CAPSNOTAVAILABLEYET           : Result := 'DPERR_CAPSNOTAVAILABLEYET';
  378.     DPERR_EXCEPTION                     : Result := 'DPERR_EXCEPTION';
  379.     DPERR_GENERIC                       : Result := 'DPERR_GENERIC';
  380.     DPERR_INVALIDFLAGS                  : Result := 'DPERR_INVALIDFLAGS';
  381.     DPERR_INVALIDOBJECT                 : Result := 'DPERR_INVALIDOBJECT';
  382.     DPERR_INVALIDPARAM                  : Result := 'DPERR_INVALIDPARAM, DPERR_INVALIDPARAMS';
  383.     DPERR_INVALIDPLAYER                 : Result := 'DPERR_INVALIDPLAYER';
  384.     DPERR_INVALIDGROUP                  : Result := 'DPERR_INVALIDGROUP';
  385.     DPERR_NOCAPS                        : Result := 'DPERR_NOCAPS';
  386.     DPERR_NOCONNECTION                  : Result := 'DPERR_NOCONNECTION';
  387.     DPERR_NOMEMORY                      : Result := 'DPERR_NOMEMORY, DPERR_OUTOFMEMORY';
  388.     DPERR_NOMESSAGES                    : Result := 'DPERR_NOMESSAGES';
  389.     DPERR_NONAMESERVERFOUND             : Result := 'DPERR_NONAMESERVERFOUND';
  390.     DPERR_NOPLAYERS                     : Result := 'DPERR_NOPLAYERS';
  391.     DPERR_NOSESSIONS                    : Result := 'DPERR_NOSESSIONS';
  392.     DPERR_PENDING                       : Result := 'DPERR_PENDING';
  393.     DPERR_SENDTOOBIG                    : Result := 'DPERR_SENDTOOBIG';
  394.     DPERR_TIMEOUT                       : Result := 'DPERR_TIMEOUT';
  395.     DPERR_UNAVAILABLE                   : Result := 'DPERR_UNAVAILABLE';
  396.     DPERR_UNSUPPORTED                   : Result := 'DPERR_UNSUPPORTED';
  397.     DPERR_BUSY                          : Result := 'DPERR_BUSY';
  398.     DPERR_USERCANCEL                    : Result := 'DPERR_USERCANCEL';
  399.     DPERR_NOINTERFACE                   : Result := 'DPERR_NOINTERFACE';
  400.     DPERR_CANNOTCREATESERVER            : Result := 'DPERR_CANNOTCREATESERVER';
  401.     DPERR_PLAYERLOST                    : Result := 'DPERR_PLAYERLOST';
  402.     DPERR_SESSIONLOST                   : Result := 'DPERR_SESSIONLOST';
  403.     DPERR_UNINITIALIZED                 : Result := 'DPERR_UNINITIALIZED';
  404.     DPERR_NONEWPLAYERS                  : Result := 'DPERR_NONEWPLAYERS';
  405.     DPERR_INVALIDPASSWORD               : Result := 'DPERR_INVALIDPASSWORD';
  406.     DPERR_CONNECTING                    : Result := 'DPERR_CONNECTING';
  407.     DPERR_BUFFERTOOLARGE                : Result := 'DPERR_BUFFERTOOLARGE';
  408.     DPERR_CANTCREATEPROCESS             : Result := 'DPERR_CANTCREATEPROCESS';
  409.     DPERR_APPNOTSTARTED                 : Result := 'DPERR_APPNOTSTARTED';
  410.     DPERR_INVALIDINTERFACE              : Result := 'DPERR_INVALIDINTERFACE';
  411.     DPERR_NOSERVICEPROVIDER             : Result := 'DPERR_NOSERVICEPROVIDER';
  412.     DPERR_UNKNOWNAPPLICATION            : Result := 'DPERR_UNKNOWNAPPLICATION';
  413.     DPERR_NOTLOBBIED                    : Result := 'DPERR_NOTLOBBIED';
  414.     DPERR_SERVICEPROVIDERLOADED         : Result := 'DPERR_SERVICEPROVIDERLOADED';
  415.     DPERR_NOTREGISTERED                 : Result := 'DPERR_NOTREGISTERED';
  416. // Security related errors
  417.     DPERR_AUTHENTICATIONFAILED          : Result := 'DPERR_AUTHENTICATIONFAILED';
  418.     DPERR_CANTLOADSSPI                  : Result := 'DPERR_CANTLOADSSPI';
  419.     DPERR_ENCRYPTIONFAILED              : Result := 'DPERR_ENCRYPTIONFAILED';
  420.     DPERR_SIGNFAILED                    : Result := 'DPERR_SIGNFAILED';
  421.     DPERR_CANTLOADSECURITYPACKAGE       : Result := 'DPERR_CANTLOADSECURITYPACKAGE';
  422.     DPERR_ENCRYPTIONNOTSUPPORTED        : Result := 'DPERR_ENCRYPTIONNOTSUPPORTED';
  423.     DPERR_CANTLOADCAPI                  : Result := 'DPERR_CANTLOADCAPI';
  424.     DPERR_NOTLOGGEDIN                   : Result := 'DPERR_NOTLOGGEDIN';
  425.     DPERR_LOGONDENIED                   : Result := 'DPERR_LOGONDENIED';
  426.   else
  427.     Result := WindowsErrorMsg(ErrorCode);
  428.   end;
  429. end;
  430. {$EndIf}
  431. end.