On Tue Apr 11 23:04:23 2023 +0000, Mohamad Al-Jaf wrote:
Instead of returning `TGT_CTXT_HANDLE` when type is void, which will
then make void parameters incorrectly succeed some checks, I'd suggest adding some logic in the `TYPE_POINTER` case, checking whether the type is an alias to `void*` which name is `HANDLE`. Checking the name leads to a segmentation fault in dlls/actxprxy. Is the current way fine?
Probably the simplest thing to do, is to add it to the `TYPE_POINTER`
case in check_field_common, to avoid overloading the `TGT_CTXT_HANDLE` meaning, or having to add a specific `TGT_HANDLE` value. I couldn't find `TYPE_POINTER` case in check_field_common, unless you meant `TGT_POINTER`. Regardless, it doesn't seem like it would work because `typegen_detect_type` returns `TGT_INVALID` for TYPE_VOID.
Note that this is a problem only because we're trying to use an IDL
here. As far as I can see, the SDK doesn't have one and uses a .h directly instead (though it's probably fine and cleaner to use an IDL). Yeah, I thought it was preferred to add an IDL if possible. I don't mind doing it either way though.
Sorry, I wasn't thinking clearly earlier, I added a check for the name `HANDLE` and to see if it's NULL before checking it.