I want to change the the D3DVECTOR struct in the Direct x api but if I define a struct like this:

Code:
typedef struct VECTOR3 : D3DVECTOR
{
    //...
}
It will say it isn't a D3DVECTOR if I try to use it were a D3DVECTOR is needed. Is there a way to change it, or do I need to do it this way:

Code:
typedef struct VECTOR3
{
	float x, y, z;
} D3DVECTOR;

#define D3DVECTOR_DEFINED

#include <D3d9.h>
The #define line makes it so in the D3d9.h file won't declare D3DVECTOR, and than I am able to make it. This works fine but I am wondering is this is safe, okay, and logical to do.