VB6中TCHAR的转换有关问题

VB6中TCHAR的转换问题?MSDN中C语言DEV_BROADCAST_PORT消息原型typedef struct _DEV_BROADCAST_PORT{DWORD

VB6中TCHAR的转换问题?
MSDN中C语言DEV_BROADCAST_PORT消息原型
typedef struct _DEV_BROADCAST_PORT
 {  
DWORD dbcp_size;  
DWORD dbcp_devicetype;  
DWORD dbcp_reserved;  
TCHAR dbcp_name[1];
 } 
DEV_BROADCAST_PORT *PDEV_BROADCAST_PORT;

现在在VB6中TCHAR dbcp_name[1];怎么转换呢?还问一下CopyMemory复制这个结构体要怎么写才正确?
我是这样写的
Public Type DEV_BROADCAST_PORT
  lSize As Long
  lDevicetype As Long
  lReserved As Long
  lName(1) As Byte
End Type
Public info_port As DEV_BROADCAST_PORT
.....
.....
CopyMemory info_port, ByVal lParam, Len(info_port)
....
但是没通过

[解决办法]
TCHAR比较特殊,它是不定类别,如果编译设置为ANSI,则TCHAR相当于VB的BYTE数组,可以直接使用VB的输入输出函数,如果编译设置为UNICODE,则TCHAR相当于VB的INTEGER数组,则需要使用UNICODE版本(即最好一个字符为“W”)的API函数。
[解决办法]
tchar是宽字符,vb不像vc那样能自动识别unicode的字符类型
传给vb时要进行宽字符转换,
参考api:MultiByteToWideChar

结构体传出,用long,byte只是到255,而中文字符时不正确的
[解决办法]

探讨
还是很疑惑 TCHAR dbcp_name[1];这只是1个char或wchar_t型的数组,按理说应该装不下
“COM1”.....或“COM255”字符这样的返回值?
这样的话只存了以“C”字符啊?