in reply to Re^2: A little help with Win32::API? (cleanup)
in thread A little help with Win32::API?

I guess the +INSTALLSTATE_NOTUSED hash init doesn't do what you intended

Fixed.

szProduct and szComponent are UUIDs in brackets, so we can define constant for them as well to be 38 chars

True. I just used the number because the documentation stated a number and not a constant.

If I understand this correctly, MsiGetComponentPath() returns how successful the execution went

I think you mean MsiGetShortcutTarget. I made the Perl version return an empty list on error. The reason for the error is available via $^E (0+$^E gives the code, ''.$^E gives the message).

we supposed to call MsiGetComponentPath() only if it returns success (0).

I do that. I don't know why you say this is an improvement to be made.

But on Vista I also get 1603 when I try this with c#

Not a problem. I figured the errors might not be limited to 1627. By using $^E, it's properly handled.

Replies are listed 'Best First'.
Re^4: A little help with Win32::API? (cleanup)
by flamey (Scribe) on Apr 26, 2010 at 14:31 UTC
    thanks! I've learned a few new things in Perl with this thread...