// Licensed under the Apache License, Version 2.0
// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
// All files in the project carrying such notice may not be copied, modified, or distributed
// except according to those terms.
DEFINE_GUID!{TID_D3DRMInfo,
    0x2b957100, 0x9e9a, 0x11cf, 0xab, 0x39, 0x00, 0x20, 0xaf, 0x71, 0xe4, 0x33}
DEFINE_GUID!{TID_D3DRMMesh,
    0x3d82ab44, 0x62da, 0x11cf, 0xab, 0x39, 0x00, 0x20, 0xaf, 0x71, 0xe4, 0x33}
DEFINE_GUID!{TID_D3DRMVector,
    0x3d82ab5e, 0x62da, 0x11cf, 0xab, 0x39, 0x00, 0x20, 0xaf, 0x71, 0xe4, 0x33}
DEFINE_GUID!{TID_D3DRMMeshFace,
    0x3d82ab5f, 0x62da, 0x11cf, 0xab, 0x39, 0x00, 0x20, 0xaf, 0x71, 0xe4, 0x33}
DEFINE_GUID!{TID_D3DRMMaterial,
    0x3d82ab4d, 0x62da, 0x11cf, 0xab, 0x39, 0x00, 0x20, 0xaf, 0x71, 0xe4, 0x33}
DEFINE_GUID!{TID_D3DRMMaterialArray,
    0x35ff44e1, 0x6c7c, 0x11cf, 0x8f, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xa3}
DEFINE_GUID!{TID_D3DRMFrame,
    0x3d82ab46, 0x62da, 0x11cf, 0xab, 0x39, 0x00, 0x20, 0xaf, 0x71, 0xe4, 0x33}
DEFINE_GUID!{TID_D3DRMFrameTransformMatrix,
    0xf6f23f41, 0x7686, 0x11cf, 0x8f, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xa3}
DEFINE_GUID!{TID_D3DRMMeshMaterialList,
    0xf6f23f42, 0x7686, 0x11cf, 0x8f, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xa3}
DEFINE_GUID!{TID_D3DRMMeshTextureCoords,
    0xf6f23f40, 0x7686, 0x11cf, 0x8f, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xa3}
DEFINE_GUID!{TID_D3DRMMeshNormals,
    0xf6f23f43, 0x7686, 0x11cf, 0x8f, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xa3}
DEFINE_GUID!{TID_D3DRMCoords2d,
    0xf6f23f44, 0x7686, 0x11cf, 0x8f, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xa3}
DEFINE_GUID!{TID_D3DRMMatrix4x4,
    0xf6f23f45, 0x7686, 0x11cf, 0x8f, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xa3}
DEFINE_GUID!{TID_D3DRMAnimation,
    0x3d82ab4f, 0x62da, 0x11cf, 0xab, 0x39, 0x00, 0x20, 0xaf, 0x71, 0xe4, 0x33}
DEFINE_GUID!{TID_D3DRMAnimationSet,
    0x3d82ab50, 0x62da, 0x11cf, 0xab, 0x39, 0x00, 0x20, 0xaf, 0x71, 0xe4, 0x33}
DEFINE_GUID!{TID_D3DRMAnimationKey,
    0x10dd46a8, 0x775b, 0x11cf, 0x8f, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xa3}
DEFINE_GUID!{TID_D3DRMFloatKeys,
    0x10dd46a9, 0x775b, 0x11cf, 0x8f, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xa3}
DEFINE_GUID!{TID_D3DRMMaterialAmbientColor,
    0x01411840, 0x7786, 0x11cf, 0x8f, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xa3}
DEFINE_GUID!{TID_D3DRMMaterialDiffuseColor,
    0x01411841, 0x7786, 0x11cf, 0x8f, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xa3}
DEFINE_GUID!{TID_D3DRMMaterialSpecularColor,
    0x01411842, 0x7786, 0x11cf, 0x8f, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xa3}
DEFINE_GUID!{TID_D3DRMMaterialEmissiveColor,
    0xd3e16e80, 0x7835, 0x11cf, 0x8f, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xa3}
DEFINE_GUID!{TID_D3DRMMaterialPower,
    0x01411843, 0x7786, 0x11cf, 0x8f, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xa3}
DEFINE_GUID!{TID_D3DRMColorRGBA,
    0x35ff44e0, 0x6c7c, 0x11cf, 0x8f, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xa3}
DEFINE_GUID!{TID_D3DRMColorRGB,
    0xd3e16e81, 0x7835, 0x11cf, 0x8f, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xa3}
DEFINE_GUID!{TID_D3DRMGuid,
    0xa42790e0, 0x7810, 0x11cf, 0x8f, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xa3}
DEFINE_GUID!{TID_D3DRMTextureFilename,
    0xa42790e1, 0x7810, 0x11cf, 0x8f, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xa3}
DEFINE_GUID!{TID_D3DRMTextureReference,
    0xa42790e2, 0x7810, 0x11cf, 0x8f, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xa3}
DEFINE_GUID!{TID_D3DRMIndexedColor,
    0x1630b820, 0x7842, 0x11cf, 0x8f, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xa3}
DEFINE_GUID!{TID_D3DRMMeshVertexColors,
    0x1630b821, 0x7842, 0x11cf, 0x8f, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xa3}
DEFINE_GUID!{TID_D3DRMMaterialWrap,
    0x4885ae60, 0x78e8, 0x11cf, 0x8f, 0x52, 0x00, 0x40, 0x33, 0x35, 0x94, 0xa3}
DEFINE_GUID!{TID_D3DRMBoolean,
    0x537da6a0, 0xca37, 0x11d0, 0x94, 0x1c, 0x00, 0x80, 0xc8, 0x0c, 0xfa, 0x7b}
