libtool-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Repost: [PATCH] [cygwin|mingw] Create UAC manifest files.


From: Dave Korn
Subject: Re: Repost: [PATCH] [cygwin|mingw] Create UAC manifest files.
Date: Fri, 19 Mar 2010 18:02:10 +0000
User-agent: Thunderbird 2.0.0.17 (Windows/20080914)

On 19/03/2010 06:18, Ralf Wildenhues wrote:

>> [ ... snip ... ]                       The level of privileges required
>> for some executable program to accomplish its task may be designated by
>> the program developer by means of a manifest file (@pxref{Manifest
>> Files}), which may either be installed in the same directory alongside
>> the executable, or can be built directly in by adding the manifest file
>> as a binary resource in a Windows resource file (@pxref{Resource Files})
>> that is included in the executable's final link.        [ ... snip ... ]
> 
> That's better, but it makes it sounds like the resource file is a
> binary, and "built directly in" sounds unobvious to me.  Is "binary
> resource" a technical term?  Would using just "resource" be enough?

  Actually, I was wrong:

> AFAIU, the resource file (*.rc) is a simple hand-written text file,
> which may refer to the manifest file (like a .c file includes a header),
> then gets compiled by windres to an object file and linked in like any
> other object.  Right?

  Yep, that's basically it.  The resource file defines objects from a certain
number of pre-defined categories, such as strings, icons and other small
bitmaps, and various struct-like things such as version infos; these are
compiled (along with some management data) into a .rsrc section that is then
linked into the exe.

  A "binary resource" is a catch-all object type that just includes any old
arbitrary binary data you like, it's a bag-o-bytes.

  However I misunderstood the docs I looked up.  MS have defined a specialised
type of resource for manifests, you don't just throw them in as a blob, and
that means you just create a "manifest resource" type entry and include the
manifest xml data as a string directly within it; it doesn't refer to a
separate file on disk at all.  So better wording would be:

" ... or can be built directly in by adding the XML contents of the file as a
manifest resource in a Windows resource file (@pxref{Resource Files}) that is
included ... "

> BTW, if the password is not given correctly, then will the program run
> under lesser privileges or will it not run at all?  I think we should
> document that as well, because either outcome has implications for the
> developer.

  I don't have a handy installation to find out on.  I would guess that if you
enter the password incorrectly it asks you to try again, just like a regular
windows log-on dialog, and if you click "Cancel", the application doesn't
launch.  I'll see if I can find some more solid info anywhere.

> This is where I'm at now.

  Looking good, apart from the above only one nit:

> If your executable does not need elevated privileges, but happens to match any
> of those strings, the OS will prompt for a password.  If granted,
> run the executable with greater privileges than an ordinary user
> application is supposed to have; otherwise, the program will not be started.

  There's a word or two gone missing between "granted" and "run"!

    cheers,
      DaveK




reply via email to

[Prev in Thread] Current Thread [Next in Thread]