#if !defined(RT_IID_H)
#define RT_IID_H
// iid.h
//
// Description:
//  ATL smart pointer classes have a code dependency on the uuid()
//  declspec for interfaces.  The GUIDs of the interfaces for Direct3D8
//  are in the header file, but there is no declspec uuid() provided for
//  the interfaces.  This file provides this information.
//
// Copyright (C) 2000-2001, Rich Thomson, all rights reserved.
//

// DirectX graphics interfaces
#define RT_IID(iid_, name_) struct __declspec(uuid(iid_)) name_
RT_IID("{1DD9E8DA-1C77-4d40-B0CF-98FEFDFF9512}", IDirect3D8);
RT_IID("{7385E5DF-8FE8-41D5-86B6-D7B48547B6CF}", IDirect3DDevice8);
RT_IID("{1B36BB7B-09B7-410a-B445-7D1430D7B33F}", IDirect3DResource8);
RT_IID("{B4211CFA-51B9-4a9f-AB78-DB99B2BB678E}", IDirect3DBaseTexture8);
RT_IID("{E4CDD575-2866-4f01-B12E-7EECE1EC9358}", IDirect3DTexture8);
RT_IID("{3EE5B968-2ACA-4c34-8BB5-7E0C3D19B750}", IDirect3DCubeTexture8);
RT_IID("{4B8AAAFA-140F-42ba-9131-597EAFAA2EAD}", IDirect3DVolumeTexture8);
RT_IID("{8AEEEAC7-05F9-44d4-B591-000B0DF1CB95}", IDirect3DVertexBuffer8);
RT_IID("{0E689C9A-053D-44a0-9D92-DB0E3D750F86}", IDirect3DIndexBuffer8);
RT_IID("{B96EEBCA-B326-4ea5-882F-2FF5BAE021DD}", IDirect3DSurface8);
RT_IID("{BD7349F5-14F1-42e4-9C79-972380DB40C0}", IDirect3DVolume8);
RT_IID("{928C088B-76B9-4C6B-A536-A590853876CD}", IDirect3DSwapChain8);
// D3DX interfaces
RT_IID("{932E6A7E-C68E-45dd-A7BF-53D19C86DB1F}", ID3DXBuffer);
RT_IID("{2D501DF7-D253-4414-865F-A6D54A753138}", ID3DXFont);
RT_IID("{E8691849-87B8-4929-9050-1B0542D5538C}", ID3DXSprite);
RT_IID("{69CC587C-E40C-458d-B5D3-B029E18EB60A}", ID3DXRenderToSurface);
RT_IID("{9F6779E5-60A9-4d8b-AEE4-32770F405DBA}", ID3DXRenderToEnvMap);
RT_IID("{A00F378D-AF79-4917-907E-4D635EE63844}", ID3DXTechnique);
RT_IID("{281BBDD4-AEDF-4907-8650-E79CDFD45165}", ID3DXEffect);
RT_IID("{E3357330-CC5E-11d2-A434-00A0C90629A8}", ID3DXMatrixStack);
RT_IID("{A69BA991-1F7D-11d3-B929-00C04F68DC23}", ID3DXBaseMesh);
RT_IID("{9D84AC46-6B90-49a9-A721-085C7A3E3DAE}", ID3DXMesh);
RT_IID("{15981AA8-1A05-48e3-BBE7-FF5D49654E3F}", ID3DXPMesh);
RT_IID("{BC3BBDE2-1F7D-11d3-B929-00C04F68DC23}", ID3DXSPMesh);
RT_IID("{82A53844-F322-409e-A2E9-992E1104069D}", ID3DXSkinMesh);
// X File interfaces
RT_IID("{3d82ab40-62da-11cf-ab39-0020af71e433}", IDirectXFile);
RT_IID("{3d82ab41-62da-11cf-ab39-0020af71e433}", IDirectXFileEnumObject);
RT_IID("{3d82ab42-62da-11cf-ab39-0020af71e433}", IDirectXFileSaveObject);
RT_IID("{3d82ab43-62da-11cf-ab39-0020af71e433}", IDirectXFileObject);
RT_IID("{3d82ab44-62da-11cf-ab39-0020af71e433}", IDirectXFileData);
RT_IID("{3d82ab45-62da-11cf-ab39-0020af71e433}", IDirectXFileDataReference);
RT_IID("{3d82ab46-62da-11cf-ab39-0020af71e433}", IDirectXFileBinary);
#undef RT_IID

#endif // RT_IID_H
