#ifndef MACROD3D_H
#define MACROD3D_H
 
 
#define D3D_M_vRelease(x) if((x)!=NULL) {(x)->lpVtbl->Release(x); (x) = NULL;}
 
#define IDirect3D0(p,fonction) ( (((p) != NULL) && ((p)->lpVtbl != NULL)) ? (p)->lpVtbl->##fonction##(p) : -1)
#define IDirect3D1(p,fonction,a) ( (((p) != NULL) && ((p)->lpVtbl != NULL)) ? (p)->lpVtbl->##fonction##(p,a) : -1)
#define IDirect3D2(p,fonction,a,b) ( (((p) != NULL) && ((p)->lpVtbl != NULL)) ? (p)->lpVtbl->##fonction##(p,a,b) : -1)
#define IDirect3D3(p,fonction,a,b,c) ( (((p) != NULL) && ((p)->lpVtbl != NULL)) ? (p)->lpVtbl->##fonction##(p,a,b,c) : -1)
#define IDirect3D4(p,fonction,a,b,c,d) ( (((p) != NULL) && ((p)->lpVtbl != NULL)) ? (p)->lpVtbl->##fonction##(p,a,b,c,d) : -1)
#define IDirect3D5(p,fonction,a,b,c,d,e) ( (((p) != NULL) && ((p)->lpVtbl != NULL)) ? (p)->lpVtbl->##fonction##(p,a,b,c,d,e) : -1)
 
 
#endif /* MACROD3D_H */
