头文件中结构体别名重复定义怎么处理

头文件中结构体别名重复定义怎么办?
<driver.h>这个头文件中的定义是
typedef struct tagPT_DEVLIST
{
  DWORD dwDeviceNum;

#ifndef _WIN32_WCE  
  char szDeviceName[50];  
#else  
  TCHAR szDeviceName[50];  
#endif

  SHORT nNumOfSubdevices;
} DEVLIST, FAR *LPDEVLIST;

<advmotapi.h>这个头文件中的定义是
typedef struct tagPT_DEVLIST
{
  DWORD dwDeviceNum;
  char szDeviceName[50];
  SHORT nNumOfSubdevices;
} DEVLIST, *LPDEVLIST;
编译过后出错,说是DEVLIST和LPDEVLIST重复定义了,该怎么办啊?

------解决方案--------------------
把<advmotapi.h>这个头文件中这个结构屏蔽掉,因为这两个类实际上是一样的,但<driver.h>中定义更合理,考虑到平台不一致性
------解决方案--------------------
老大允许你改头文件吗?