windows-nt/Source/XPSP1/NT/multimedia/opengl/pmesh/interface.h
2020-09-26 16:20:57 +08:00

74 lines
1.6 KiB
C

/**
** File : interface.h
** Description: Interface definitions
**/
#ifndef _interface_h_
#define _interface_h_
#include <unknwn.h>
#define interface struct
EXTERN_C const GUID CDECL FAR IID_IPMesh;
EXTERN_C const GUID CDECL FAR IID_IPMeshGL;
EXTERN_C const GUID CDECL FAR IID_IPMGeomorph;
EXTERN_C const GUID CDECL FAR IID_IPMeshLoadCB;
interface IPMeshLoadCB:IUnknown
{
STDMETHOD(OnDataAvailable)(DWORD, DWORD)=0;
};
typedef IPMeshLoadCB* LPPMESHLOADCB;
/*
* IPMGeomorph Interface
*/
interface IPMGeomorph:IUnknown
{
STDMETHOD(SetBlend)(float)=0;
STDMETHOD(GetBlend)(float*)=0;
};
typedef IPMGeomorph* LPPMGEOMORPH;
/*
* IPMesh Interface
*/
interface IPMesh: public IUnknown
{
STDMETHOD (Load)(const char* const, const char* const, DWORD* const,
DWORD* const, LPPMESHLOADCB)=0;
STDMETHOD (LoadStat)(const char* const, const char* const, DWORD* const,
DWORD* const)=0;
STDMETHOD (GetNumFaces)(DWORD* const)=0;
STDMETHOD (SetNumFaces)(DWORD)=0;
STDMETHOD (GetNumVertices)(DWORD* const)=0;
STDMETHOD (SetNumVertices)(DWORD)=0;
STDMETHOD (GetMaxVertices)(DWORD* const)=0;
STDMETHOD (GetMaxFaces)(DWORD* const)=0;
STDMETHOD (GeomorphToVertices)(LPPMGEOMORPH, DWORD* const)=0;
STDMETHOD (GeomorphToFaces)(LPPMGEOMORPH, DWORD* const)=0;
STDMETHOD (ClonePM)(IPMesh* const)=0;
};
typedef IPMesh* LPPMESH;
/*
* IPMeshGL Interface
*/
interface IPMeshGL: public IUnknown
{
STDMETHOD (Initialize)(void)=0;
STDMETHOD (Render)(void)=0;
};
typedef IPMeshGL* LPPMESHGL;
#endif //_interface_h_