typedef PVOID HDEVNOTIFY;
typedef HDEVNOTIFY *PHDEVNOTIFY;
//第一行,可以理解,把HDEVNOTIFY定义成PVOID的数据类型
但第二行,怎样理解
如果放在下面的函数中
BOOL DoRegisterDeviceInterface(
GUID InterfaceClassGuid,
HDEVNOTIFY *hDevNotify
)
不用HDEVNOTIFY,而用PVOID的话应该是什么?
是这样吗?
BOOL DoRegisterDeviceInterface(
GUID InterfaceClassGuid,
PVOID *hDevNotify
)
typedef HDEVNOTIFY *PHDEVNOTIFY;
//第一行,可以理解,把HDEVNOTIFY定义成PVOID的数据类型
但第二行,怎样理解
如果放在下面的函数中
BOOL DoRegisterDeviceInterface(
GUID InterfaceClassGuid,
HDEVNOTIFY *hDevNotify
)
不用HDEVNOTIFY,而用PVOID的话应该是什么?
是这样吗?
BOOL DoRegisterDeviceInterface(
GUID InterfaceClassGuid,
PVOID *hDevNotify
)
//上面不是已经把 hNotifyDevNode定义成指针了吗
//那下面再PVOID *hNotifyDevNode,这又怎样理解?
void RegisterForDevChange(HWND hDlg, PVOID *hNotifyDevNode)
//
表示
PHDEVNOTIFY x; //等价 HDEVNOTIFY *x;又
typedef PVOID HDEVNOTIFY;
所以,等价 PVOID *x;又
typedef void *PVOID;
所以,等价 void ** x;
GUID InterfaceClassGuid,
HDEVNOTIFY *hDevNotify
);
您在使用的时候可以
GUID guid;
HDEVNOTIFY hdev;
BOOL bRet=DoRegisterDeviceInterface(guid,&hdev);
PVOID hNotifyDevNode;
中的hNotifyDevNode,并不是一个指针,而是一个无类型的变量??
PHDEVNOTIFY hDevNotify ;
等价 HDEVNOTIFY *hDevNotify ;
等价 PVOID *hDevNotify;
等价 void **hDevNotify;所以 hDevNotify是一个指向指针的指针.
等价 void* x;
是一个指针。