yes you were! actually, you found out how to get unicode string.. I didn't  
know how! :) and you found where the problem lies, that it needs unicode  
and the TCL_OK problem...
happy now? :)

KKRT

On Fri, 23 Jun 2006 14:04:22 -0400, Sander Hoentjen <[EMAIL PROTECTED]>  
wrote:

> But I was close :P
>
> On Fri, 2006-06-23 at 13:47 -0400, Youness Alaoui wrote:
>> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/shellexecute.asp
>>
>> this means we should not only use the GetUnicode to get a unicode string
>>  from Tcl, but also change the ShellExecute call.. I've worked a lot  
>> with
>> those type of functions (ANSI/UNICODE) so I know how it works... :
>> you have two functions, the first one is ShellExecuteA and is the ANSI
>> version of ShellExecute, and you have a second function ShellExecuteW
>> which is the unicode version (W = Wide char). The ShellExecute function
>> doesn't exist, it's a macro in this form :
>> #ifdef UNICODE
>> #define ShellExecute ShellExecuteW
>> #else
>> #define ShellExecute ShellExecuteA
>> #endif
>>
>> Since almost all compilations are done using ANSI and not UNICODE  
>> (unless
>> you manually change that in the project settings), then you end up with
>> the ANSI version.
>> The solution would be to use this instead :
>> ShellExecuteW ( NULL, L"open", file, arguments, NULL, SW_SHOWNORMAL);
>> As well as changing the GetStringFromObj into GetUnicode calls...
>> btw, the L"open".. the 'L' was introduced to tell the compiler that this
>> constant string should be compiled into a unicode string, since it's the
>> compiler that will create it, it doesn't kow it's unicode and will  
>> default
>> to 8bit per char, the 'L' says to use 16bits per char, so it's not a
>> typo...
>> now, all we should do has been explained. Also, we should add att the  
>> end
>> something like this (pseudocode this time) :
>> int ret = (int) ShellExecuteW ...
>> if (ret > 32) return TCL_OK;
>> switch (ret) {
>> case ERROR_FILE_NOT_FOUND :
>>      Tcl_AppendResult (interp, "The specified file was not found");
>>      break;
>> case ERROR_PATH_NOT_FOUND :  
>>      Tcl_AppendResult (interp, "The specified path was not found");
>>      break;
>> case ERROR_BAD_FORMAT :
>>      Tcl_AppendResult (interp, "The .exe file is invalid (non-Microsoft  
>> Win32
>> .exe or error in .exe image)");
>>      break;
>> etc...
>> }
>> return TCL_ERROR;
>>
>> Just get the error list from the msdn link I gave at the top of this
>> email....
>>
>> I can do it if you want, but I have no compiler... so if someone could  
>> do
>> it and compile instead of me doing it, not compiling, and not testing...
>> that would be great! What else do you need ? :P
>>
>> KKRT
>>
>>
>> On Fri, 23 Jun 2006 07:24:24 -0400, Sander Hoentjen <[EMAIL PROTECTED]>
>> wrote:
>>
>> > On Fri, 2006-06-23 at 04:14 -0400, Youness Alaoui wrote:
>> >
>> >> - special characters in Windows logon username prevent from opening
>> >> browser to hotlog.htm
>> >>
>> > the bug is in WinLoadFile in file winutils.cpp
>> > First let me tell you again i don't know C programming, and also I  
>> don't
>> > know how to compile on windows.. But here is a suggestion, feel free  
>> to
>> > shoot me down if i say something stupid..
>> > Now we have:
>> >    ShellExecute(NULL,"open", file, arguments, NULL, SW_SHOWNORMAL);
>> >
>> >
>> >    return TCL_OK;
>> >
>> > So whatever ShellExecute is doing, TCL_OK is returned. I suggest that
>> > the return value of ShellExecute is checked, and it it is an error  
>> value
>> > then return TCL_ERROR (and of course first Tcl_AppendResult). That way
>> > in the future it is easier to spot an error.
>> >
>> > Furthermore about the error:
>> >    // Get the first argument string (file)
>> >    file=Tcl_GetStringFromObj(objv[1], NULL);
>> > replace that by:
>> >    // Get the first argument string (file)
>> >    file=Tcl_GetUnicode(objv[1]);
>> >
>> > Maybe that way it will work, but as I said I don't have a clue on how  
>> to
>> > compile on windows..
>> >
>> > Hope this helps,
>> >
>> > Sander
>> >
>> >
>> > Using Tomcat but need to do more? Need to support web services,  
>> security?
>> > Get stuff done quickly with pre-integrated technology to make your job
>> > easier
>> > Download IBM WebSphere Application Server v.1.0.1 based on Apache
>> > Geronimo
>> >  
>> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
>> > _______________________________________________
>> > Amsn-devel mailing list
>> > [email protected]
>> > https://lists.sourceforge.net/lists/listinfo/amsn-devel
>>
>>
>>
>> --
>> KaKaRoTo
>>
>> Using Tomcat but need to do more? Need to support web services,  
>> security?
>> Get stuff done quickly with pre-integrated technology to make your job  
>> easier
>> Download IBM WebSphere Application Server v.1.0.1 based on Apache  
>> Geronimo
>> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
>> _______________________________________________
>> Amsn-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/amsn-devel
>
>
> Using Tomcat but need to do more? Need to support web services, security?
> Get stuff done quickly with pre-integrated technology to make your job  
> easier
> Download IBM WebSphere Application Server v.1.0.1 based on Apache  
> Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> _______________________________________________
> Amsn-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/amsn-devel



-- 
KaKaRoTo

Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Amsn-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/amsn-devel

Reply via email to