No, there are 2 separate implementations - one ascii another unicode. During the object creation one would specify either ascii or unicode RIID.
Objects IDirectInputDevice8W and IDirectInputDevice8A has function GetProperty. This function get struct of type DIPROPSTRING as input/output parameter in our case . This struct has output field wsz of type WCHAR[ MAX_PATH ] and other input fields not depends of charset. So type of returned data will be WCHAR[ MAX_PATH ] in both case. So objects IDirectInputDevice8W and IDirectInputDevice8A has the same implementation of function GetProperty and this implementation is for Unicode in both case.