G
Guest
Hi,
I am using VS.net 2003 to write a managed C++ windows application.
My main form traps the WM_DEVICECHANGE message and calls a method in my own
unmanaged class passing the wParam and lParam.
In the method, I cast the lParam to a PDEV_BROADCAST_DEVICEINTERFACE like:
pdbcd = (PDEV_BROADCAST_DEVICEINTERFACE) lParam;
The problem I'm having is that the pdbcd->dbcc_name is only one character "\".
If I look at it in memory, I can see what it should be ("\\?\USB#Vid_0
etc...") but it is twice as long and every other character is a 0
(("\.\.?.\.U.S.B.#.V.i.d._.0. etc...")).
I've tried the different Language option settings but they all seem to work
the same. I guess I can live with it as long as I can get the correct value
in after the cast.
Any ideas what I may be doing wrong or ways to fix it?
Thanks,
Joe
I am using VS.net 2003 to write a managed C++ windows application.
My main form traps the WM_DEVICECHANGE message and calls a method in my own
unmanaged class passing the wParam and lParam.
In the method, I cast the lParam to a PDEV_BROADCAST_DEVICEINTERFACE like:
pdbcd = (PDEV_BROADCAST_DEVICEINTERFACE) lParam;
The problem I'm having is that the pdbcd->dbcc_name is only one character "\".
If I look at it in memory, I can see what it should be ("\\?\USB#Vid_0
etc...") but it is twice as long and every other character is a 0
(("\.\.?.\.U.S.B.#.V.i.d._.0. etc...")).
I've tried the different Language option settings but they all seem to work
the same. I guess I can live with it as long as I can get the correct value
in after the cast.
Any ideas what I may be doing wrong or ways to fix it?
Thanks,
Joe