Page 1 of 2 12 LastLast
Results 1 to 40 of 77

Thread: SxS Manifest Tutorial -- Any Takers?

  1. #1

    Thread Starter
    VB-aholic & Lovin' It LaVolpe's Avatar
    Join Date
    Oct 2007
    Location
    Beside Waldo
    Posts
    19,541

    Lightbulb SxS Manifest Tutorial -- Any Takers?

    We've all seen posts about side-by-side (SxS) manifests. There is a lot of good information throughout those numerous posts by people very knowledgeable. But there isn't a one-stop source on this forum as far as I know. If there is such a thread, FAQ, or Tutorial please post its location, call me search-challenged, and ignore the rest of the following.

    Anyone willing to tackle this topic by creating a Tutorial that would be submitted in the "Tutorials" section of the forum, targeted just for VBers?

    I'd think the tutorial, at a minimum, should identify why SxS manifests are desired, how to determine what the minimal content must be, how to get the information for that content, and how to test the manifest.

    Realize that each SxS manifest would be unique, but the process of creating one should be standard enough to enable a tutorial to be pretty much all-inclusive. I, for one, don't have the experience to tackle this but there are many of you that have that experience. Just wondering if anyone is willing to take the time and create the tutorial. If so, looking forward to it.

    Maybe people would be willing to post to that tutorial their own working manifests for typical controls, allowing others to basically copy & paste appropriate elements to their manifest.

    Tip: There are submission guidelines for a tutorial. With the tutorials I've created, I found it easier to use the "Test" portion of the forum to build the tutorial as it is likely to consist of several posts to get all the information presented and take quite some time to get it finished if it's complex. And if people post replies to it while in the Test forum, no biggie. After you are satisfied with it, contact an Admin and ask them to move/copy it to the Tutorials section excluding any replies that may have been posted.
    Insomnia is just a byproduct of, "It can't be done"

    Classics Enthusiast? Here's my 1969 Mustang Mach I Fastback. Her sister '67 Coupe has been adopted

    Newbie? Novice? Bored? Spend a few minutes browsing the FAQ section of the forum.
    Read the HitchHiker's Guide to Getting Help on the Forums.
    Here is the list of TAGs you can use to format your posts
    Here are VB6 Help Files online


    {Alpha Image Control} {Memory Leak FAQ} {Unicode Open/Save Dialog} {Resource Image Viewer/Extractor}
    {VB and DPI Tutorial} {Manifest Creator} {UserControl Button Template} {stdPicture Render Usage}

  2. #2
    PowerPoster dilettante's Avatar
    Join Date
    Feb 2006
    Posts
    24,487

    Re: SxS Manifest Tutorial -- Any Takers?

    You are probably referring to a superset of simple SxS manifests, Activation Context manifests.

    SxS just refers to a form of redirection from the usual DLL Search algorithm to link to an alternate or private assembly. It applies to flat, COM, and ActiveX DLLs (and OCXs) but SxS does not include the type information that is normally registered.

    Ideally you wouldn't try to cobble them together by hand but instead make use of some software packaging tool. There is MT.EXE which isn't too friendly to VB users and also Side-by-Side Manifest Maker from Maze. Some 3rd party installer creation suites also incorporate creation and embedding of manifests.

    I use my own MMM for this, but no longer release new versions for reasons I have already gone into before.

    You probably do not want a pile of static snippets to cobble together to make manifests. Some of the information required such as GUIDs, type library version numbers, etc. are not fixed over time. Even the redirection paths are likely to vary depending on your packaging strategy.

    One reason to use these is that your program might be dependent upon an old version of some library so you'd want to have the correct values inserted into the manifest. For example some "patches" Microsoft released break some of the VB6 OCXs with numerous "off by one" bugs they have never seemed to be able to fix. In another case that I know of some operations in the current preinstalled versions of a system library are 100 times as slow as in the redist versions Microsoft once provided for use in Windows XP. The slowdown seems to be related to security and DRM issues, but these don't apply to a VB6 program as they do when the library is used in an IE page.
    Last edited by dilettante; Sep 4th, 2017 at 03:17 PM.

  3. #3

    Thread Starter
    VB-aholic & Lovin' It LaVolpe's Avatar
    Join Date
    Oct 2007
    Location
    Beside Waldo
    Posts
    19,541

    Re: SxS Manifest Tutorial -- Any Takers?

    You are one of the coders I was referring to when I mentioned "very knowledgeable". Not putting you on the spot here, but if you aren't interested in creating/starting such a tutorial, I know we'd all benefit from your replies to such a tutorial. That tutorial should include how-tos regarding MT.exe and related applications and/or potential usage of known reliable freeware or cheapware, etc.

    Unfortunately, when I've gotten curious to do some searching, it seems all the good tid-bits are spread across so many threads, it is really difficult to keep track of all that information for consolidation/comparison; hence the reason for this thread. Not begging anyone, just thought the question was worth asking.
    Insomnia is just a byproduct of, "It can't be done"

    Classics Enthusiast? Here's my 1969 Mustang Mach I Fastback. Her sister '67 Coupe has been adopted

    Newbie? Novice? Bored? Spend a few minutes browsing the FAQ section of the forum.
    Read the HitchHiker's Guide to Getting Help on the Forums.
    Here is the list of TAGs you can use to format your posts
    Here are VB6 Help Files online


    {Alpha Image Control} {Memory Leak FAQ} {Unicode Open/Save Dialog} {Resource Image Viewer/Extractor}
    {VB and DPI Tutorial} {Manifest Creator} {UserControl Button Template} {stdPicture Render Usage}

  4. #4
    PowerPoster dilettante's Avatar
    Join Date
    Feb 2006
    Posts
    24,487

    Re: SxS Manifest Tutorial -- Any Takers?

    I have never used the product from Maze but people tell me that there used to be a "free" version for individual private use.

  5. #5
    PowerPoster Elroy's Avatar
    Join Date
    Jun 2014
    Location
    Near Nashville TN
    Posts
    10,915

    Re: SxS Manifest Tutorial -- Any Takers?

    Hi LaVolpe,

    Personally, I think this is a fabulous idea. Also, and I think you're doing this, I'd love to see it restricted to just the SxS portion of a manifest file. You and others have well covered many (if not all) of the other aspects of what can possibly go into a manifest file.

    I personally have a manifest file that has worked well for me for quite a number of years. However, I must confess, that I don't absolutely know the idiosyncrasies of every aspect of the manifest file that I use. To have all of this sorted would be absolutely fabulous.

    And Dilettante, I think you might be somewhat resistant. Aren't you still a rather strong proponent of using installers? And, as we know, to some degree, an installer obviates the need to concern ourselves with SxS operations. The ideas of portable versus installer don't perfectly map onto this SxS discussion, but they're certainly related.

    LaVolpe, I'm not here absolutely everyday, but I'd be delighted to take the lead on developing a FAQ post, that is, if you're not wanting to do it yourself. I must admit though that I've got quite a few questions to hammer out before I'd feel like I had all the necessary knowledge.

    And, just to put it out there, there are two separate programs I use to get my SxS manifest portion sorted: MT.exe & RegSvr42.exe. I'm not sure where to get MT.exe, but it is a Microsoft product. I've provided a link for RegSvr42.exe (along with its source code).

    Okay, to get things started. The following is a working manifest file for using tabctl32.ocx and Richtx32.ocx. These two OCX files must be in a sub-folder to the executable named Dependencies. This can be seen with a small amount of study of this manifest file.

    Code:
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>  
    
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    
    <assemblyIdentity type="win32" name="dependencies" version="1.0.0.0" />
    
    <file name="Dependencies\tabctl32.ocx">
        <comClass description="Microsoft Tabbed Dialog Control 6.0 (SP6)" clsid="{BDC217C5-ED16-11CD-956C-0000C04E4C0A}" threadingModel="Apartment" progid="TabDlg.SSTab" tlbid="{BDC217C8-ED16-11CD-956C-0000C04E4C0A}" />
        <comClass description="SSTabCtl General Property Page Object" clsid="{7DA06D40-54A0-11CF-A521-0080C77A7786}" />
        <typelib tlbid="{BDC217C8-ED16-11CD-956C-0000C04E4C0A}" version="1.1" helpdir="" />
    </file>
    
    <file name="Dependencies\Richtx32.ocx">
        <comClass description="Microsoft Rich Textbox Control 6.0 (SP6)"     clsid="{3B7C8860-D78F-101B-B9B5-04021C009402}" threadingModel="Apartment" progid="RICHTEXT.RichtextCtrl" tlbid="{3B7C8863-D78F-101B-B9B5-04021C009402}" />
        <comClass description="RichText General Property Page Object"        clsid="{78E5A540-1850-11CF-9D53-00AA003C9CB6}" />
        <comClass description="RichText Apppearance Property Page Object"    clsid="{AFC634B0-4B8B-11CF-8989-00AA00688B10}" />
        <comClass description="Microsoft Rich Textbox Control 6.0 (SP6)"     clsid="{B617B991-A767-4F05-99BA-AC6FCABB102E}" threadingModel="Apartment" />
        <typelib tlbid="{3B7C8863-D78F-101B-B9B5-04021C009402}" version="1.2" helpdir="" />
    </file>
    
    
    <comInterfaceExternalProxyStub name="DSSTabCtlEvents"       iid="{BDC217C7-ED16-11CD-956C-0000C04E4C0A}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{BDC217C8-ED16-11CD-956C-0000C04E4C0A}" />
    <comInterfaceExternalProxyStub name="ISSTabCtl"             iid="{2A4FCCB0-DFF1-11CF-8E74-00A0C90F26F8}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{BDC217C8-ED16-11CD-956C-0000C04E4C0A}" /> 
    
    <comInterfaceExternalProxyStub name="DRichTextEvents"       iid="{3B7C8862-D78F-101B-B9B5-04021C009402}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{3B7C8863-D78F-101B-B9B5-04021C009402}" />
    <comInterfaceExternalProxyStub name="IOLEObject"            iid="{ED117630-4090-11CF-8981-00AA00688B10}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{3B7C8863-D78F-101B-B9B5-04021C009402}" />
    <comInterfaceExternalProxyStub name="IOLEObjects"           iid="{859321D0-3FD1-11CF-8981-00AA00688B10}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{3B7C8863-D78F-101B-B9B5-04021C009402}" />
    <comInterfaceExternalProxyStub name="IRichText"             iid="{E9A5593C-CAB0-11D1-8C0B-0000F8754DA1}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{3B7C8863-D78F-101B-B9B5-04021C009402}" /> 
    
    </assembly>
    I haven't really done any testing to cut things out and see what can be removed without breaking it. Also, I truly don't know what all those elements are. For instance, which parts are essential, but don't really matter that much. For instance, I suspect assemblyIdentity and name="SomeString" are needed, but I suspect the actual string value is entirely unimportant. Also, is manifestVersion important? Is assemblyIdentity version important?

    Now also, as has been stated elsewhere (and suggested by Dilettante above), when we do this, we're probably tying ourselves to a specific version of an OCX file. And, if we update, we should probably reproduce all the "stuff" that is specific to that OCX file.

    Now, just to focus a bit on, say, the tabctl32.ocx, we can see that there are two sections for it in the manifest file:

    First section...

    Code:
    <file name="Dependencies\tabctl32.ocx">
        <comClass description="Microsoft Tabbed Dialog Control 6.0 (SP6)" clsid="{BDC217C5-ED16-11CD-956C-0000C04E4C0A}" threadingModel="Apartment" progid="TabDlg.SSTab" tlbid="{BDC217C8-ED16-11CD-956C-0000C04E4C0A}" />
        <comClass description="SSTabCtl General Property Page Object" clsid="{7DA06D40-54A0-11CF-A521-0080C77A7786}" />
        <typelib tlbid="{BDC217C8-ED16-11CD-956C-0000C04E4C0A}" version="1.1" helpdir="" />
    </file>
    Second section...

    Code:
    <comInterfaceExternalProxyStub name="DSSTabCtlEvents"       iid="{BDC217C7-ED16-11CD-956C-0000C04E4C0A}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{BDC217C8-ED16-11CD-956C-0000C04E4C0A}" />
    <comInterfaceExternalProxyStub name="ISSTabCtl"             iid="{2A4FCCB0-DFF1-11CF-8E74-00A0C90F26F8}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{BDC217C8-ED16-11CD-956C-0000C04E4C0A}" />
    Anyone have a good explanation for each of these sections?

    And then, lastly for this post, here are some notes I have for using MT.exe and RegSvr42.exe.

    Code:
    mt -tlb:someocx.ocx -dll:someocx.ocx -out:someocx.ocx.manifest
    With the above command, it will create a someocx.ocx.manifest file in the same folder.

    ... and...

    Code:
    regsvr42 someocx.ocx
    With that above command, it will create a someocx.sxs.manifest in the same folder.

    I look forward to more comments and information.

    Best Regards,
    Elroy

    EDIT1: And as an unrelated FYI, I've requested that the Win10 installation post be moved to the FAQ section, although I don't think the moderators have had time to get it done and integrated into the FAQ contents.

    EDIT2: And just for those who may be curious, I use two separate programs for digging out the SxS manifest stuff mostly as a double-check. I still wind up massaging the results in an ANSI editor, especially to align things (as seen above). Just as a further FYI, these manifest files are special XML files. And, as such, white space makes no difference.
    Last edited by Elroy; Sep 4th, 2017 at 09:17 PM.
    Any software I post in these forums written by me is provided "AS IS" without warranty of any kind, expressed or implied, and permission is hereby granted, free of charge and without restriction, to any person obtaining a copy. To all, peace and happiness.

  6. #6
    Fanatic Member Spooman's Avatar
    Join Date
    Mar 2017
    Posts
    868

    Re: SxS Manifest Tutorial -- Any Takers?

    LaVolpe

    If I may pipe in as a representative of those who have no idea what a manifest is and suggest that you also cover these basic topics ...
    1. What is a manifest file?
    2. How is a SxS manifest file different?
    3. Why would one use one?

    Including a screen-shot would also be useful.

    Spoo

  7. #7
    PowerPoster Elroy's Avatar
    Join Date
    Jun 2014
    Location
    Near Nashville TN
    Posts
    10,915

    Re: SxS Manifest Tutorial -- Any Takers?

    Ahhh, well actually, Spoo, I can answer those questions. Here, let me take a stab at those.

    However, there is one assumption made. And that is ... that you know how to use the VB6 Resource Editor.

    Quote Originally Posted by Spooman View Post
    What is a manifest file?
    A manifest file (.manifest) is an ANSI (Notepad editable) file that directs the way an executable (.exe) works in various ways. There are two ways a manifest file can be associated with an executable: 1) externally, or 2) internally. When used externally, the manifest file must be named with the exact name of the executable, with the addition of the .manifest extension. For instance, if you have a compiled VB6 program named MyProgram.exe, you could also associate an external manifest file with it by placing a file named MyProgram.exe.manifest in the exact same folder as your executable. When you do this, your VB6 program will attempt to read the manifest file, and alter its execution according to the instructions in the manifest file. A VB6 executable looks for one of these manifest files as one of the very first things it does, definitely before loading the first form or executing VB6 compiled code.

    Now, there is also the internal way to have a manifest file. In fact, the internal method is far preferred to the external method. In this case, the actual name of the manifest file doesn't matter, as the entire file will be placed into the resource file of the VB6 project, and then compiled into the executable. To use this method, you prepare your manifest file as usual, and then place it into your resource file, naming the type to "#24" (no quotes, but the # is important). And the ID is 1. The ID must stay numeric.

    Also, and this is true of all resource files, if the file happens to be larger than 65520 bytes (as per "Size" (not "Size on disk") as seen on the file's properties), you must somehow round (i.e., pad) it to a 4-byte boundary. If you don't do this, it will be rounded up to a 4-byte boundary upon extraction, which may cause it to be interpreted incorrectly. For files smaller than 65520 bytes, they are extracted out of an executable's resources correctly. It's rare that a manifest file would be larger than 65520 bytes, but not impossible.

    Also, to clear up any confusion about this, the VB6 IDE doesn't inherently have any mechanisms for preparing these manifest files. They must be prepared entirely independently of the actual development of your VB6 project in the IDE. However, since they are ANSI, they can easily be prepared with Notepad (or Notepad++). The trick is to figure out how to correctly place the directives in these manifest files, and, with respect to SxS information, that's what this thread will be discussing.

    Quote Originally Posted by Spooman View Post
    How is a SxS manifest file different?
    An SxS manifest file isn't really different from any other manifest file. Rather, we're talking about a specific section in a manifest file that may (or may not) be present. In other words, you can have a manifest file that directs your program to be DPI aware. Or, you can have a manifest file that has SxS information in it. Or, you can have a manifest file that does both, possibly along with other directives as well.

    Quote Originally Posted by Spooman View Post
    Why would one use one?
    With respect to SxS, the primary reason to use a manifest file is to maintain strict control over which ActiveX OCX files your executable is using. Without any SxS information in a manifest file, if your program utilizes OCX files, it must go to the Windows registry and attempt to find them. This typically (but not absolutely) instructs your executable to look in System32 or SysWOW64 to find them, and then they're utilized from there. However, this approach absolutely depends on these OCX files being correctly registered. Also, it depends on a version at least as late (or later) of the OCX that was used for development of your program. Furthermore, it's rare, but there have been cases where the later version of an OCX didn't have quite the same functionality of an earlier version. And, when multiple programs (not necessarily even VB6, just COM based) are installed on a computer, it's very likely that an OCX will be a later version than the one you used for development. All of this is specifically called "DLL hell". There's even a Wikipedia page on it.

    To guarantee that you've circumvented these problems, you can use SxS information in a manifest file, and thereby direct your program to use OCX files that you distribute with your executable, thereby maintaining strict control over which OCX files your program uses, and possibly circumventing "DLL hell". And, there's the added benefit that, when used in this way, there's no need for the OCX files to be registered. And, just as a further FYI, an OCX file is just a specific type of DLL file by another name.

    Also, if you use this approach with all your OCX files, and you don't have other ActiveX DLL files, your executable can be distributed as portable; as, from Windows XP forward, all the core VB6 runtime files have be pre-installed on Windows as part of the operating system. In other words, if you have a VB6 compiled executable that makes no use of any OCX files or ActiveX DLL files (or any other custom DLL files), it will run portable (i.e., no installation) without any considerations whatsoever (from Windows XP forward).

    ------------------------------------------------

    I suppose that's a start on the FAQ. I'll definitely take critiques on any of the above.

    Best Regards,
    Elroy

    p.s. I may make small changes to the above text to improve it. However, I won't make large changes, so feel free to quote it.
    Last edited by Elroy; Sep 5th, 2017 at 10:53 AM.
    Any software I post in these forums written by me is provided "AS IS" without warranty of any kind, expressed or implied, and permission is hereby granted, free of charge and without restriction, to any person obtaining a copy. To all, peace and happiness.

  8. #8
    PowerPoster
    Join Date
    Feb 2017
    Posts
    5,700

    Re: SxS Manifest Tutorial -- Any Takers?

    I think that one important point is to clarify the list of files that don't need to be distributed with the application, like DAO and ADO dlls, VB6 dlls, Windows dlls, Etc.

  9. #9
    PowerPoster Elroy's Avatar
    Join Date
    Jun 2014
    Location
    Near Nashville TN
    Posts
    10,915

    Re: SxS Manifest Tutorial -- Any Takers?

    Hi Eduardo,

    I think that's all a bit of a separate topic, but your point is taken. However, if we start trying to list all of the things we're not talking about, I'm not sure where the list would stop. Do we mention the GDI, GDI+, WMI services, Process Status API calls, etc, etc. I think we'd be better off to be clear about what we are talking about.

    For instance, in my mind, we're specifically talking about how a compiled VB6 program locates and makes use of OCX files. (And maybe, later on, we'll expand the discussion to ActiveX DLL files.) And, from my perspective, it'd be fine if we limited it further to OCX files distributed by Microsoft, but I suspect others would not like that limitation. Also, we could include OCX files that were of our own creation (i.e., compiled by VB6).

    Best Regards,
    Elroy
    Any software I post in these forums written by me is provided "AS IS" without warranty of any kind, expressed or implied, and permission is hereby granted, free of charge and without restriction, to any person obtaining a copy. To all, peace and happiness.

  10. #10
    PowerPoster
    Join Date
    Feb 2017
    Posts
    5,700

    Re: SxS Manifest Tutorial -- Any Takers?

    Quote Originally Posted by Elroy View Post
    Hi Eduardo,

    I think that's all a bit of a separate topic, but your point is taken. However, if we start trying to list all of the things we're not talking about, I'm not sure where the list would stop. Do we mention the GDI, GDI+, WMI services, Process Status API calls, etc, etc. I think we'd be better off to be clear about what we are talking about.

    For instance, in my mind, we're specifically talking about how a compiled VB6 program locates and makes use of OCX files. (And maybe, later on, we'll expand the discussion to ActiveX DLL files.) And, from my perspective, it'd be fine if we limited it further to OCX files distributed by Microsoft, but I suspect others would not like that limitation. Also, we could include OCX files that were of our own creation (i.e., compiled by VB6).

    Best Regards,
    Elroy
    I'm absolutely pragmatic and practical.
    What I think is important is all the needed information to produce a portable distribution, with a manifest where all the OCX's and DLL's necessary for the App to work are in a folder usually named "Bin".

    After that, for the one interested in technical aspects and willing to master the subject, may be an expansion with all the details involved.

    Otherwise, it wouldn't help very much for the everyday programming (and shipping).

    PS: in my opinion the tutorials need to be short and to the point, with some expanded sections later for the one that wants to go more into more details or to handle special situations.

    These are my two cents.

  11. #11
    Fanatic Member Spooman's Avatar
    Join Date
    Mar 2017
    Posts
    868

    Re: SxS Manifest Tutorial -- Any Takers?

    Elroy

    To guarantee that you've circumvented these problems, you can use SxS information in a manifest file, and thereby direct your program to use OCX files that you distribute with your executable, thereby maintaining strict control over which OCX files your program uses, and possibly circumventing "DLL hell". And, there's the added benefit that, when used in this way, there's no need for the OCX files to be registered.
    Excellent.
    All very informative, especially this bit, which zeros in on the what, with the balance dealing with the why.

    Thanks

    Spoo
    Last edited by Spooman; Sep 5th, 2017 at 12:21 PM.

  12. #12

    Thread Starter
    VB-aholic & Lovin' It LaVolpe's Avatar
    Join Date
    Oct 2007
    Location
    Beside Waldo
    Posts
    19,541

    Re: SxS Manifest Tutorial -- Any Takers?

    For all: I'm not the person that will be taking on this tutorial. The original question was asking if anyone wants that challenge. I don't have the experience in this arena. And maybe it doesn't have to be 1 person. Maybe interested individuals can PM others they think may be interested and make it a combined effort?

    In any case, posting comments/questions about SxS or registration-free manifests is expected/welcomed. If anyone does decide to create/start such a tutorial, the comments posted in this thread could be helpful in deciding on the content for the tutorial.
    Insomnia is just a byproduct of, "It can't be done"

    Classics Enthusiast? Here's my 1969 Mustang Mach I Fastback. Her sister '67 Coupe has been adopted

    Newbie? Novice? Bored? Spend a few minutes browsing the FAQ section of the forum.
    Read the HitchHiker's Guide to Getting Help on the Forums.
    Here is the list of TAGs you can use to format your posts
    Here are VB6 Help Files online


    {Alpha Image Control} {Memory Leak FAQ} {Unicode Open/Save Dialog} {Resource Image Viewer/Extractor}
    {VB and DPI Tutorial} {Manifest Creator} {UserControl Button Template} {stdPicture Render Usage}

  13. #13
    PowerPoster Elroy's Avatar
    Join Date
    Jun 2014
    Location
    Near Nashville TN
    Posts
    10,915

    Re: SxS Manifest Tutorial -- Any Takers?

    Hi LaVolpe. Truth be told, I was sort of hoping that you'd do it. But you've now stated twice that you don't want to.

    Therefore, I'll take on the task. Personally, I'd just rather do it as a thread, much like we've been doing herein, with the exception that the top two-or-three posts would be resolved for massaging/developing the tutorial.

    Let me ask ... Where do you think it ultimately belongs? I can visualize two places: 1) the codebank, or 2) the FAQ forum. I suppose I'm leaning toward the codebank, but I think either would be appropriate.

    Also, a couple more things. Rather than have PMs flying around, I don't mind just developing (and massaging and improving) it in public, much like I did the Win10 installation FAQ section.

    Also, I'd like to limit the scope a bit. Here are the limitations I'd like to impose:

    • This is not a discussion of creating a manifest file for the VB6 IDE, although this can be done. We are restricting the tutorial to creating manifest files for compiled VB6 programs.
    • At least initially, I'd like to limit it to a discussion of OCX files. We can possibly discuss ActiveX DLL files at another time.


    LaVolpe, since you started this idea, I don't want to "steal" any initiative you have. However, if you think it's appropriate, I'll start another thread, with the hopes that it'll develop into a good tutorial for ultimate transfer to the codebank (or FAQ section).

    Best Regards,
    Elroy

    EDIT1: Also, it was recently pointed out to me that VB6 had some early problems with this SxS execution, and that it wasn't all fixed until SP6 (of the VB6 IDE). If anyone attempts this stuff, you need to make sure you have SP6 installed for the VB6 IDE. This can be checked on the IDE's "About" page.
    Last edited by Elroy; Sep 5th, 2017 at 03:42 PM.
    Any software I post in these forums written by me is provided "AS IS" without warranty of any kind, expressed or implied, and permission is hereby granted, free of charge and without restriction, to any person obtaining a copy. To all, peace and happiness.

  14. #14
    Hyperactive Member
    Join Date
    Jul 2013
    Posts
    403

    Re: SxS Manifest Tutorial -- Any Takers?

    Quote Originally Posted by Elroy View Post
    At least initially, I'd like to limit it to a discussion of OCX files. We can possibly discuss ActiveX DLL files at another time.
    I use manifests for both of them with no difference. Am I missing something?
    Carlos

  15. #15
    PowerPoster Elroy's Avatar
    Join Date
    Jun 2014
    Location
    Near Nashville TN
    Posts
    10,915

    Re: SxS Manifest Tutorial -- Any Takers?

    Hi Carlos,

    I suppose it's just a matter of taste. I, personally, load my ActiveX DLLs with some code that loads them without any need for registration or a manifest. It just seems cleaner to me. You can find the code I use to do that here.

    I've never looked into it that much, but I've always suspected there was little difference in manifesting ActiveX DLLs as opposed to OCXs. I'm not opposed to a discussion of ActiveX DLLs accessed via a manifest file. I was just trying to keep a sharp focus.

    Best Regards,
    Elroy

    EDIT1: And that "loading after we're running" approach won't work with OCX files, as they're loaded with forms, not necessarily with code.
    Any software I post in these forums written by me is provided "AS IS" without warranty of any kind, expressed or implied, and permission is hereby granted, free of charge and without restriction, to any person obtaining a copy. To all, peace and happiness.

  16. #16

    Thread Starter
    VB-aholic & Lovin' It LaVolpe's Avatar
    Join Date
    Oct 2007
    Location
    Beside Waldo
    Posts
    19,541

    Re: SxS Manifest Tutorial -- Any Takers?

    Quote Originally Posted by Elroy
    LaVolpe, since you started this idea, I don't want to "steal" any initiative you have. However, if you think it's appropriate, I'll start another thread, with the hopes that it'll develop into a good tutorial for ultimate transfer to the codebank (or FAQ section).
    If what you have in mind will eventually be a "how-to", then I feel it should be in a tutorial within the "Tutorials" section of the forum. Any manifest related FAQ questions can reference the tutorial as I would within my existing Manifest Creator II codebank submission. If not a "Tutorials" submission, then a FAQ submission. In either case, I think creating it in the "Testing" section is a good idea... lets you play with formatting, organization, etc (see my first post at top)

    If still unsure where you would want your "how-to" to reside, doesn't hurt to contact the Admin of the FAQ/Tutorial sections and ask for their opinion. That's what I've done in the past for the two I've created.

    As for a thread containing this information, that is what I was hoping to avoid. I was hoping for something more "permanent" and easier to find. This section of the forum I feel would be the hardest place to find/filter out all the noise -- probably getting 100's of hits in a search. Do believe the Tutorials/FAQ section would be better. Just my opinion.

    P.S. Don't rush, take your time... Better to be thought out and useful than rushed and hard to understand.
    Last edited by LaVolpe; Sep 5th, 2017 at 04:29 PM.
    Insomnia is just a byproduct of, "It can't be done"

    Classics Enthusiast? Here's my 1969 Mustang Mach I Fastback. Her sister '67 Coupe has been adopted

    Newbie? Novice? Bored? Spend a few minutes browsing the FAQ section of the forum.
    Read the HitchHiker's Guide to Getting Help on the Forums.
    Here is the list of TAGs you can use to format your posts
    Here are VB6 Help Files online


    {Alpha Image Control} {Memory Leak FAQ} {Unicode Open/Save Dialog} {Resource Image Viewer/Extractor}
    {VB and DPI Tutorial} {Manifest Creator} {UserControl Button Template} {stdPicture Render Usage}

  17. #17
    Hyperactive Member
    Join Date
    Jul 2013
    Posts
    403

    Re: SxS Manifest Tutorial -- Any Takers?

    Hello Elroy,

    No need to worry about that, as once "it" works for OCX "it" works for ActiveX DLLs (OCXs without UI?). Probably not the other way around, from my experience.
    Carlos

  18. #18
    PowerPoster
    Join Date
    Jun 2012
    Posts
    2,733

    Re: SxS Manifest Tutorial -- Any Takers?

    Also worth to mention in such a FAQ or Tutorial is that it is not possible to manifest an ActiveX-EXE.

  19. #19
    PowerPoster Elroy's Avatar
    Join Date
    Jun 2014
    Location
    Near Nashville TN
    Posts
    10,915

    Re: SxS Manifest Tutorial -- Any Takers?

    I successfully manifested ActiveX DLLs (i.e., put a manifest into the project that was to be compiled into an ActiveX DLL). But it's been decades since I've messed with ActiveX EXEs. That's good info, Krool. I'll take your word for it, and work it into the tutorial.

    EDIT1: Say Krool. Just to be clear, are we talking about using a manifest file to access an ActiveX EXE, or are we talking about putting a manifest file within an ActiveX EXE?

    EDIT2: I think you're talking about accessing an ActiveX EXE from a standard EXE with a manifest in the standard EXE (and I initially misunderstood). That actually makes more sense.
    Last edited by Elroy; Sep 5th, 2017 at 05:02 PM.
    Any software I post in these forums written by me is provided "AS IS" without warranty of any kind, expressed or implied, and permission is hereby granted, free of charge and without restriction, to any person obtaining a copy. To all, peace and happiness.

  20. #20
    PowerPoster Elroy's Avatar
    Join Date
    Jun 2014
    Location
    Near Nashville TN
    Posts
    10,915

    Re: SxS Manifest Tutorial -- Any Takers?

    Alright, here's my plan.

    I'm going to work on an initial post to start the tutorial. I'll just start it here in the "Visual Basic 6 and Earlier" forum, and reserve three extra posts. I think four posts total should be adequate.

    And, when it's finished, I'll ask the moderators to move it all to the Tutorials section. I just looked at that section, and I agree that that'd be a nice place for it.

    Just so this doesn't become one more point of pressure on my life, I'm not going to commit to any time-frame. Also, I wholeheartedly welcome help and critiques on this project. There are a few things I still need to learn to make sure I get all of this correct.

    Once I get it going, I'll try and use a color-coding system to show changes, maybe alternate through red, green, blue, black for changes, with black being well reviewed and settled text.

    Wish Me Luck,
    Elroy
    Any software I post in these forums written by me is provided "AS IS" without warranty of any kind, expressed or implied, and permission is hereby granted, free of charge and without restriction, to any person obtaining a copy. To all, peace and happiness.

  21. #21
    Hyperactive Member
    Join Date
    Jul 2013
    Posts
    403

    Re: SxS Manifest Tutorial -- Any Takers?

    Quote Originally Posted by Krool View Post
    Also worth to mention in such a FAQ or Tutorial is that it is not possible to manifest an ActiveX-EXE.
    Yes, that's what I learned so far, but just found this

    https://stackoverflow.com/questions/...rocess-activex
    Carlos

  22. #22
    Fanatic Member Spooman's Avatar
    Join Date
    Mar 2017
    Posts
    868

    Re: SxS Manifest Tutorial -- Any Takers?

    Elroy

    Forgive in advance my nit-pickiness, but

    green is a little hard to read

    maybe magenta
    or the VE tag for HIGHLIGHT (with no entry made in the dialog box, just click OK)

    Spoo

  23. #23
    PowerPoster Elroy's Avatar
    Join Date
    Jun 2014
    Location
    Near Nashville TN
    Posts
    10,915

    Re: SxS Manifest Tutorial -- Any Takers?

    Thanks Spoo,

    Once I get a starting post put together (which I'm working on), I'll come up with a good scheme for showing latest edits. Thanks for the ideas.

    Elroy
    Any software I post in these forums written by me is provided "AS IS" without warranty of any kind, expressed or implied, and permission is hereby granted, free of charge and without restriction, to any person obtaining a copy. To all, peace and happiness.

  24. #24
    Lively Member
    Join Date
    May 2011
    Posts
    99

    Re: SxS Manifest Tutorial -- Any Takers?

    Is this the place to get some guidance on fixing my VB6(sp6) _.ocx file manifests... ? e.g.:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">

    <assemblyIdentity
    processorArchitecture="x86" type="win32"
    name="ThreeD32.ocx"
    version="1.0.0.0" />

    <file name="Dependencies\ThreeD32.ocx">

    <comClass
    description="Threed Frame Control"
    clsid="{0BA686AF-F7D3-101A-993E-0000C0EF6F5E}" />

    <comClass
    description="Threed Checkbox Control"
    clsid="{0BA686AA-F7D3-101A-993E-0000C0EF6F5E}" />

    <comClass
    description="Threed Option Button Control"
    clsid="{0BA686AF-F7D3-101A-993E-0000C0EF6F5E}" />

    <comClass
    description="Threed Checkbox Property Page"
    clsid="{0BA686AA-F7D3-101A-993E-0000C0EF6F5E}" />

    <comClass
    description="Threed Group Push Button Control"
    clsid="{0BA686AF-F7D3-101A-993E-0000C0EF6F5E}" />

    <typelib tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}"
    version="win32"
    helpdir="" />

    </file>

    </assembly>

    sxsTrace =>
    =================
    Begin Activation Context Generation.
    Input Parameter:
    Flags = 0
    ProcessorArchitecture = Wow32
    CultureFallBacks = en-US;en
    ManifestPath = D:\Program Files (x86)\Clark_Anderson\zThreeD\zThreeD.exe
    AssemblyDirectory = D:\Program Files (x86)\Clark_Anderson\zThreeD\
    Application Config File =
    -----------------
    INFO: Parsing Manifest File D:\Program Files (x86)\Clark_Anderson\zThreeD\zThreeD.exe.
    INFO: Manifest Definition Identity is zThreeD,processorArchitecture="x86",type="win32",version="1.1.0.3".
    ERROR: Activation Context generation failed.
    End Activation Context Generation.

    I get the same error on Win7(x64) and Win10(x64)

  25. #25
    PowerPoster Elroy's Avatar
    Join Date
    Jun 2014
    Location
    Near Nashville TN
    Posts
    10,915

    Re: SxS Manifest Tutorial -- Any Takers?

    My ThreeD32.ocx is file version 1.0.41.0. I'm still testing, but I generated the following manifest for it:

    Code:
    
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    
        <file name="ThreeD32.ocx">
            <comClass clsid="{0BA686AA-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" description="A three-dimensional check box.">                                       </comClass>
            <comClass clsid="{0BA686AF-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" description="A three-dimensional frame control.">                                   </comClass>
            <comClass clsid="{0BA686B4-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" description="A three-dimensional command button.">                                  </comClass>
            <comClass clsid="{0BA686B9-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" description="A three-dimensional rectangular control with inner and outer bevels."> </comClass>
            <comClass clsid="{0BA686BE-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" description="A three-dimensional option button.">                                   </comClass>
            <comClass clsid="{0BA686C3-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" description="A three-dimensional push button used in a group.">                     </comClass>
    
            <typelib tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" resourceid="1" version="1.0" helpdir="" flags="CONTROL">    </typelib>
        </file>
    
        <comInterfaceExternalProxyStub name="ISSCBCtrl"         iid="{0BA686AB-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
        <comInterfaceExternalProxyStub name="ISSCBCtrlEvents"   iid="{0BA686AC-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
        <comInterfaceExternalProxyStub name="ISSFRCtrl"         iid="{0BA686B0-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
        <comInterfaceExternalProxyStub name="ISSFRCtrlEvents"   iid="{0BA686B1-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
        <comInterfaceExternalProxyStub name="ISSPBCtrl"         iid="{0BA686B5-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
        <comInterfaceExternalProxyStub name="ISSPBCtrlEvents"   iid="{0BA686B6-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
        <comInterfaceExternalProxyStub name="ISSPNCtrl"         iid="{0BA686BA-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
        <comInterfaceExternalProxyStub name="ISSPNCtrlEvents"   iid="{0BA686BB-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
        <comInterfaceExternalProxyStub name="ISSRBCtrl"         iid="{0BA686BF-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
        <comInterfaceExternalProxyStub name="ISSRBCtrlEvents"   iid="{0BA686C0-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
        <comInterfaceExternalProxyStub name="ISSRICtrl"         iid="{0BA686C4-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
        <comInterfaceExternalProxyStub name="ISSRICtrlEvents"   iid="{0BA686C5-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
    
    </assembly>
    
    Maybe try that and see how it goes. I'm trying it too.
    Any software I post in these forums written by me is provided "AS IS" without warranty of any kind, expressed or implied, and permission is hereby granted, free of charge and without restriction, to any person obtaining a copy. To all, peace and happiness.

  26. #26
    PowerPoster Elroy's Avatar
    Join Date
    Jun 2014
    Location
    Near Nashville TN
    Posts
    10,915

    Re: SxS Manifest Tutorial -- Any Takers?

    Well crud. To use it in the IDE, I've got to have a license, which I no longer have. I once did, but that was many years ago, and I've got no clue where it is.

    Let me know how it goes with the above manifest.

    Good Luck,
    Elroy

    EDIT1: And, if I remember correctly, it was on 3.5" floppies, which I also no longer have.

    EDIT2: Good news. I found the vbusc.exe from Microsoft that provides the license. I'm continuing with my testing.
    Last edited by Elroy; Sep 6th, 2017 at 11:32 AM.
    Any software I post in these forums written by me is provided "AS IS" without warranty of any kind, expressed or implied, and permission is hereby granted, free of charge and without restriction, to any person obtaining a copy. To all, peace and happiness.

  27. #27
    PowerPoster Elroy's Avatar
    Join Date
    Jun 2014
    Location
    Near Nashville TN
    Posts
    10,915

    Re: SxS Manifest Tutorial -- Any Takers?

    Yep, that manifest I posted in post #25 seems to work just fine (tested all five controls).

    As a note, I didn't direct it to look in a "Dependencies" sub-folder as you originally had it. Here, the following has that piece corrected:

    Code:
    
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    
        <file name="Dependencies\ThreeD32.ocx">
            <comClass clsid="{0BA686AA-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" description="A three-dimensional check box.">                                       </comClass>
            <comClass clsid="{0BA686AF-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" description="A three-dimensional frame control.">                                   </comClass>
            <comClass clsid="{0BA686B4-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" description="A three-dimensional command button.">                                  </comClass>
            <comClass clsid="{0BA686B9-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" description="A three-dimensional rectangular control with inner and outer bevels."> </comClass>
            <comClass clsid="{0BA686BE-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" description="A three-dimensional option button.">                                   </comClass>
            <comClass clsid="{0BA686C3-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" description="A three-dimensional push button used in a group.">                     </comClass>
    
            <typelib tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" resourceid="1" version="1.0" helpdir="" flags="CONTROL">    </typelib>
        </file>
    
        <comInterfaceExternalProxyStub name="ISSCBCtrl"         iid="{0BA686AB-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
        <comInterfaceExternalProxyStub name="ISSCBCtrlEvents"   iid="{0BA686AC-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
        <comInterfaceExternalProxyStub name="ISSFRCtrl"         iid="{0BA686B0-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
        <comInterfaceExternalProxyStub name="ISSFRCtrlEvents"   iid="{0BA686B1-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
        <comInterfaceExternalProxyStub name="ISSPBCtrl"         iid="{0BA686B5-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
        <comInterfaceExternalProxyStub name="ISSPBCtrlEvents"   iid="{0BA686B6-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
        <comInterfaceExternalProxyStub name="ISSPNCtrl"         iid="{0BA686BA-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
        <comInterfaceExternalProxyStub name="ISSPNCtrlEvents"   iid="{0BA686BB-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
        <comInterfaceExternalProxyStub name="ISSRBCtrl"         iid="{0BA686BF-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
        <comInterfaceExternalProxyStub name="ISSRBCtrlEvents"   iid="{0BA686C0-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
        <comInterfaceExternalProxyStub name="ISSRICtrl"         iid="{0BA686C4-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
        <comInterfaceExternalProxyStub name="ISSRICtrlEvents"   iid="{0BA686C5-F7D3-101A-993E-0000C0EF6F5E}" tlbid="{0BA686C6-F7D3-101A-993E-0000C0EF6F5E}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
    
    </assembly>
    
    Enjoy,
    Elroy
    Any software I post in these forums written by me is provided "AS IS" without warranty of any kind, expressed or implied, and permission is hereby granted, free of charge and without restriction, to any person obtaining a copy. To all, peace and happiness.

  28. #28
    Lively Member
    Join Date
    May 2011
    Posts
    99

    Re: SxS Manifest Tutorial -- Any Takers?

    Elroy, Thank you very much! With your ThreeD.ocx manifest and Manifest Creator II, my tiny zThreeD program, now works on WinXT, Win7(x64) and Win10(x64)!
    Do you, by any chance, have any manifests for MSCOMCT2.OCX and RICHTX32.OCX ?

  29. #29
    PowerPoster Elroy's Avatar
    Join Date
    Jun 2014
    Location
    Near Nashville TN
    Posts
    10,915

    Re: SxS Manifest Tutorial -- Any Takers?

    Hi Anderci,

    I use both MSCOMCT2.OCX and RICHTX32.OCX in my primary project. I also set up the "Dependencies" folder just as you are. The following is the SxS stuff for my primary project. You'll see that it's well organized. If you like, you could delete the stuff for the OCX files that you're not using.

    Code:
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>  
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    
    <assemblyIdentity type="win32" name="dependencies" version="1.0.0.0" />
    
    <file name="Dependencies\msflxgrd.ocx">
        <comClass description="Microsoft FlexGrid Control, version 6.0 (SP6)" clsid="{6262D3A0-531B-11CF-91F6-C2863C385E30}" threadingModel="Apartment" progid="MSFlexGridLib.MSFlexGrid" tlbid="{5E9E78A0-531B-11CF-91F6-C2863C385E30}" />
        <comClass description="MSFlexGrid General Property Page Object"       clsid="{6319EEA0-531B-11CF-91F6-C2863C385E30}" />
        <comClass description="MSFlexGrid Style Property Page Object"         clsid="{275DBBA0-805A-11CF-91F7-C2863C385E30}" />
    </file>
    
    <file name="Dependencies\tabctl32.ocx">
        <comClass description="Microsoft Tabbed Dialog Control 6.0 (SP6)" clsid="{BDC217C5-ED16-11CD-956C-0000C04E4C0A}" threadingModel="Apartment" progid="TabDlg.SSTab" tlbid="{BDC217C8-ED16-11CD-956C-0000C04E4C0A}" />
        <comClass description="SSTabCtl General Property Page Object"     clsid="{7DA06D40-54A0-11CF-A521-0080C77A7786}" />
        <typelib tlbid="{BDC217C8-ED16-11CD-956C-0000C04E4C0A}" version="1.1" helpdir="" />
    </file>
    
    <file name="Dependencies\Richtx32.ocx">
        <comClass description="Microsoft Rich Textbox Control 6.0 (SP6)"     clsid="{3B7C8860-D78F-101B-B9B5-04021C009402}" threadingModel="Apartment" progid="RICHTEXT.RichtextCtrl" tlbid="{3B7C8863-D78F-101B-B9B5-04021C009402}" />
        <comClass description="RichText General Property Page Object"        clsid="{78E5A540-1850-11CF-9D53-00AA003C9CB6}" />
        <comClass description="RichText Apppearance Property Page Object"    clsid="{AFC634B0-4B8B-11CF-8989-00AA00688B10}" />
        <comClass description="Microsoft Rich Textbox Control 6.0 (SP6)"     clsid="{B617B991-A767-4F05-99BA-AC6FCABB102E}" threadingModel="Apartment" />
        <typelib tlbid="{3B7C8863-D78F-101B-B9B5-04021C009402}" version="1.2" helpdir="" />
    </file>
    
    <file name="Dependencies\mscomctl.ocx">
        <comClass description="Microsoft ListView Control 6.0 (SP6)"        clsid="{BDD1F04B-858B-11D1-B16A-00C0F0283628}" threadingModel="Apartment" progid="MSComctlLib.ListViewCtrl"     tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
        <comClass description="Microsoft TreeView Control 6.0 (SP6)"        clsid="{C74190B6-8589-11D1-B16A-00C0F0283628}" threadingModel="Apartment" progid="MSComctlLib.TreeCtrl"         tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
        <comClass description="Microsoft TabStrip Control 6.0 (SP6)"        clsid="{1EFB6596-857C-11D1-B16A-00C0F0283628}" threadingModel="Apartment" progid="MSComctlLib.TabStrip"         tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
        <comClass description="Microsoft Toolbar Control 6.0 (SP6)"         clsid="{66833FE6-8583-11D1-B16A-00C0F0283628}" threadingModel="Apartment" progid="MSComctlLib.Toolbar"          tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
        <comClass description="Microsoft ImageList Control 6.0 (SP6)"       clsid="{2C247F23-8591-11D1-B16A-00C0F0283628}" threadingModel="Apartment" progid="MSComctlLib.ImageListCtrl"    tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
        <comClass description="Microsoft StatusBar Control 6.0 (SP6)"       clsid="{8E3867A3-8586-11D1-B16A-00C0F0283628}" threadingModel="Apartment" progid="MSComctlLib.SBarCtrl"         tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
        <comClass description="Microsoft Slider Control 6.0 (SP6)"          clsid="{F08DF954-8592-11D1-B16A-00C0F0283628}" threadingModel="Apartment" progid="MSComctlLib.Slider"           tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
        <comClass description="Microsoft ProgressBar Control 6.0 (SP6)"     clsid="{35053A22-8589-11D1-B16A-00C0F0283628}" threadingModel="Apartment" progid="MSComctlLib.ProgCtrl"         tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
        <comClass description="Microsoft ImageComboBox Control 6.0 (SP6)"   clsid="{DD9DA666-8594-11D1-B16A-00C0F0283628}" threadingModel="Apartment" progid="MSComctlLib.ImageComboCtl"    tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
        <comClass description="TreeView General Property Page Object"       clsid="{C27CCE32-8596-11D1-B16A-00C0F0283628}" />
        <comClass description="TabStrip General Property Page Object"       clsid="{C27CCE33-8596-11D1-B16A-00C0F0283628}" />
        <comClass description="Tab Property Page Object"                    clsid="{C27CCE34-8596-11D1-B16A-00C0F0283628}" />
        <comClass description="Toolbar General Property Page Object"        clsid="{C27CCE37-8596-11D1-B16A-00C0F0283628}" />
        <comClass description="Button Property Page Object"                 clsid="{C27CCE38-8596-11D1-B16A-00C0F0283628}" />
        <comClass description="ImageList General Property Page Object"      clsid="{C27CCE35-8596-11D1-B16A-00C0F0283628}" />
        <comClass description="Image Property Page Object"                  clsid="{C27CCE36-8596-11D1-B16A-00C0F0283628}" />
        <comClass description="StatusBar General Property Page Object"      clsid="{C27CCE39-8596-11D1-B16A-00C0F0283628}" />
        <comClass description="Panel Property Page Object"                  clsid="{C27CCE3A-8596-11D1-B16A-00C0F0283628}" />
        <comClass description="Slider General Property Page Object"         clsid="{C27CCE3C-8596-11D1-B16A-00C0F0283628}" />
        <comClass description="Slider Appearance Property Page Object"      clsid="{C27CCE3D-8596-11D1-B16A-00C0F0283628}" />
        <comClass description="Progress Bar General Property Page Object"   clsid="{C27CCE3B-8596-11D1-B16A-00C0F0283628}" />
        <comClass description="ListView General Property Page Object"       clsid="{C27CCE3E-8596-11D1-B16A-00C0F0283628}" />
        <comClass description="ListView Sort Property Page Object"          clsid="{C27CCE3F-8596-11D1-B16A-00C0F0283628}" />
        <comClass description="ListView Images Property Page Object"        clsid="{C27CCE40-8596-11D1-B16A-00C0F0283628}" />
        <comClass description="ListView Columns Property Page Object"       clsid="{C27CCE41-8596-11D1-B16A-00C0F0283628}" />
        <comClass description="ImageComboBox General Property Page Object"  clsid="{C27CCE42-8596-11D1-B16A-00C0F0283628}" />
        <typelib tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" version="2.0" helpdir="" />
    </file>
    
    <file name="Dependencies\mscomct2.ocx">
        <comClass description="Microsoft Animation Control 6.0 (SP6)"               clsid="{B09DE715-87C1-11D1-8BE3-0000F8754DA1}" threadingModel="Apartment" progid="MSComCtl2.Animation"     tlbid="{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}" />
        <comClass description="Animation General Property Page Object"              clsid="{586A6352-87C8-11D1-8BE3-0000F8754DA1}" />
        <comClass description="Microsoft UpDown Control 6.0 (SP6)"                  clsid="{603C7E80-87C2-11D1-8BE3-0000F8754DA1}" threadingModel="Apartment" progid="MSComCtl2.UpDown"        tlbid="{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}" />
        <comClass description="UpDown General Property Page Object"                 clsid="{586A6353-87C8-11D1-8BE3-0000F8754DA1}" />
        <comClass description="UpDown Buddy Property Page Object"                   clsid="{586A6355-87C8-11D1-8BE3-0000F8754DA1}" />
        <comClass description="UpDown Scrolling Property Page Object"               clsid="{586A6354-87C8-11D1-8BE3-0000F8754DA1}" />
        <comClass description="Microsoft MonthView Control 6.0 (SP6)"               clsid="{232E456A-87C3-11D1-8BE3-0000F8754DA1}" threadingModel="Apartment" progid="MSComCtl2.MonthView"     tlbid="{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}" />
        <comClass description="MonthView General Property Page Object"              clsid="{586A6356-87C8-11D1-8BE3-0000F8754DA1}" />  
        <comClass description="Microsoft Date and Time Picker Control 6.0 (SP6)"    clsid="{20DD1B9E-87C4-11D1-8BE3-0000F8754DA1}" threadingModel="Apartment" progid="MSComCtl2.DTPicker"      tlbid="{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}" />
        <comClass description="Date and Time Picker General Property Page Object"   clsid="{586A6357-87C8-11D1-8BE3-0000F8754DA1}" />
        <comClass description="Microsoft Flat Scrollbar Control 6.0 (SP6)"          clsid="{FE38753A-44A3-11D1-B5B7-0000C09000C4}" threadingModel="Apartment" progid="MSComCtl2.FlatScrollBar" tlbid="{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}" />
        <comClass description="Flat Scrollbar General Property Page Object"         clsid="{586A6359-87C8-11D1-8BE3-0000F8754DA1}" />
        <typelib tlbid="{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}" version="2.0" helpdir="" />
    </file>
    
    
    <comInterfaceExternalProxyStub name="DSSTabCtlEvents"       iid="{BDC217C7-ED16-11CD-956C-0000C04E4C0A}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{BDC217C8-ED16-11CD-956C-0000C04E4C0A}" />
    <comInterfaceExternalProxyStub name="ISSTabCtl"             iid="{2A4FCCB0-DFF1-11CF-8E74-00A0C90F26F8}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{BDC217C8-ED16-11CD-956C-0000C04E4C0A}" /> 
    
    <comInterfaceExternalProxyStub name="DRichTextEvents"       iid="{3B7C8862-D78F-101B-B9B5-04021C009402}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{3B7C8863-D78F-101B-B9B5-04021C009402}" />
    <comInterfaceExternalProxyStub name="IOLEObject"            iid="{ED117630-4090-11CF-8981-00AA00688B10}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{3B7C8863-D78F-101B-B9B5-04021C009402}" />
    <comInterfaceExternalProxyStub name="IOLEObjects"           iid="{859321D0-3FD1-11CF-8981-00AA00688B10}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{3B7C8863-D78F-101B-B9B5-04021C009402}" />
    <comInterfaceExternalProxyStub name="IRichText"             iid="{E9A5593C-CAB0-11D1-8C0B-0000F8754DA1}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{3B7C8863-D78F-101B-B9B5-04021C009402}" /> 
    
    <comInterfaceExternalProxyStub name="DImageComboEvents"     iid="{DD9DA665-8594-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="IButton"               iid="{66833FE9-8583-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="IButtonMenu"           iid="{66833FED-8583-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="IButtonMenus"          iid="{66833FEB-8583-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="IButtons"              iid="{66833FE7-8583-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="IColumnHeader"         iid="{BDD1F051-858B-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="IColumnHeaders"        iid="{BDD1F050-858B-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="IComboItem"            iid="{DD9DA660-8594-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="IComboItems"           iid="{DD9DA662-8594-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="IControls"             iid="{C8A3DC00-8593-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="IImage"                iid="{2C247F26-8591-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="IImageCombo"           iid="{DD9DA664-8594-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="IImageList"            iid="{2C247F21-8591-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="IImages"               iid="{2C247F24-8591-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="IListItem"             iid="{BDD1F04E-858B-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="IListItems"            iid="{BDD1F04C-858B-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="IListSubItem"          iid="{BDD1F055-858B-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="IListSubItems"         iid="{BDD1F053-858B-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="IListView"             iid="{BDD1F049-858B-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="ImageListEvents"       iid="{2C247F22-8591-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="INode"                 iid="{C74190B8-8589-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="INodes"                iid="{C74190B7-8589-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="IPanel"                iid="{8E3867AA-8586-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="IPanels"               iid="{8E3867A4-8586-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="IProgressBar"          iid="{35053A20-8589-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="IProgressBarEvents"    iid="{35053A21-8589-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="ISlider"               iid="{F08DF952-8592-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="ISliderEvents"         iid="{F08DF953-8592-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="IStatusBar"            iid="{8E3867A1-8586-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="IStatusBarEvents"      iid="{8E3867A2-8586-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="ITab"                  iid="{1EFB6599-857C-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="ITabs"                 iid="{1EFB6597-857C-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="ITabStrip"             iid="{1EFB6594-857C-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="ITabStripEvents"       iid="{1EFB6595-857C-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="IToolbar"              iid="{66833FE4-8583-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="IToolbarEvents"        iid="{66833FE5-8583-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="ITreeView"             iid="{C74190B4-8589-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="ITreeViewEvents"       iid="{C74190B5-8589-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="IVBDataObject"         iid="{2334D2B1-713E-11CF-8AE5-00AA00C00905}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="IVBDataObjectFiles"    iid="{2334D2B3-713E-11CF-8AE5-00AA00C00905}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="ListViewEvents"        iid="{BDD1F04A-858B-11D1-B16A-00C0F0283628}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" />
    
    <comInterfaceExternalProxyStub name="DAnimationEvents"      iid="{B09DE714-87C1-11D1-8BE3-0000F8754DA1}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="DFlatSBEvents"         iid="{FE387539-44A3-11D1-B5B7-0000C09000C4}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="DMonthViewEvents"      iid="{232E4569-87C3-11D1-8BE3-0000F8754DA1}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="DDTPickerEvents"       iid="{20DD1B9D-87C4-11D1-8BE3-0000F8754DA1}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="DUpDownEvents"         iid="{603C7E7F-87C2-11D1-8BE3-0000F8754DA1}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="IAnimation"            iid="{B09DE713-87C1-11D1-8BE3-0000F8754DA1}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="IDTPicker"             iid="{20DD1B9B-87C4-11D1-8BE3-0000F8754DA1}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="IFlatSB"               iid="{FE387538-44A3-11D1-B5B7-0000C09000C4}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="IMonthView"            iid="{232E4565-87C3-11D1-8BE3-0000F8754DA1}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}" />
    <comInterfaceExternalProxyStub name="IUpDown"               iid="{603C7E7E-87C2-11D1-8BE3-0000F8754DA1}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}" baseInterface="{00000000-0000-0000-C000-000000000046}" tlbid="{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}" />
    
    </assembly>
    Enjoy,
    Elroy
    Any software I post in these forums written by me is provided "AS IS" without warranty of any kind, expressed or implied, and permission is hereby granted, free of charge and without restriction, to any person obtaining a copy. To all, peace and happiness.

  30. #30
    Lively Member
    Join Date
    May 2011
    Posts
    99

    Re: SxS Manifest Tutorial -- Any Takers?

    Elroy, again, thank you very much.

  31. #31

    Thread Starter
    VB-aholic & Lovin' It LaVolpe's Avatar
    Join Date
    Oct 2007
    Location
    Beside Waldo
    Posts
    19,541

    Re: SxS Manifest Tutorial -- Any Takers?

    Quote Originally Posted by Elroy View Post
    I'm going to work on an initial post to start the tutorial. I'll just start it here in the "Visual Basic 6 and Earlier" forum...
    Suggestion: If doing it that way, you may still want to eventually create a Testing thread and copy/paste relevant "posts" from your "classic vb" thread to the Testing thread in the end. And when happy after your final tweaks (there will be some), ask it be moved to the Tutorials from there. It will make it ultimately easier on the Admin that will move it.

    Quote Originally Posted by Elroy View Post
    ... and reserve three extra posts I think four posts total should be adequate.
    We'll see

    Quote Originally Posted by Elroy View Post
    Just so this doesn't become one more point of pressure on my life, I'm not going to commit to any time-frame.
    Only timeline that matters is the one you set for yourself.
    Insomnia is just a byproduct of, "It can't be done"

    Classics Enthusiast? Here's my 1969 Mustang Mach I Fastback. Her sister '67 Coupe has been adopted

    Newbie? Novice? Bored? Spend a few minutes browsing the FAQ section of the forum.
    Read the HitchHiker's Guide to Getting Help on the Forums.
    Here is the list of TAGs you can use to format your posts
    Here are VB6 Help Files online


    {Alpha Image Control} {Memory Leak FAQ} {Unicode Open/Save Dialog} {Resource Image Viewer/Extractor}
    {VB and DPI Tutorial} {Manifest Creator} {UserControl Button Template} {stdPicture Render Usage}

  32. #32
    Lively Member
    Join Date
    May 2011
    Posts
    99

    Re: SxS Manifest Tutorial -- Any Takers?

    I think the manifests are working very well, bur another hitch (Sorry - Off This Topic):
    Re: [RESOLVED] Error 481 - Invalid picture in compiled exe (vb6 sp6) in Win7

    I used IcoFx to change all of the icons from 32 to True Colors (24 bits). There were some that were 8 and 4.

    In the VB6 project, I opened the main form properties and reselected the icon file. That is the only form specifying an icon.

    I opened the Project Properties - Make - Application and reselected the main form for the icon.

    I still get the 481 error on Windows 7 (x64) test PC.

    In Application Manifest Creator > Windows Vista and above > Windows Settings > 2017 NameSpace, there is a [_] Gdi Scaling. Is that relevant?
    -----------------------------------
    I took my tiny NoOCX VB6 program and added a True Colors (24 bits) icon to the main form. It appears in the title bar of the form and the icon for the .exe file.

    I went through the same 'repair process' with all 4 of my primary applications

    I still get the 481 error on Windows 7 (x64) test PC for all of them.

    HELP Please!

  33. #33
    PowerPoster dilettante's Avatar
    Join Date
    Feb 2006
    Posts
    24,487

    Re: SxS Manifest Tutorial -- Any Takers?

    GDI Scaling only has an impact on current supported versions of Windows, i.e. Windows 10 1703 or later. Obsolete and deprecated versions of Windows ignore it.

    You are sitting in the cockpit of a fighter jet slapping at knobs and pulling on levers at random.

  34. #34
    PowerPoster Elroy's Avatar
    Join Date
    Jun 2014
    Location
    Near Nashville TN
    Posts
    10,915

    Re: SxS Manifest Tutorial -- Any Takers?

    Sorry, but I just couldn't resist. According to David Platt, we're bus drivers, not fighter jet pilots. And just to say it, he took an absolutely tremendous amount of heat for that article, and had to write a rebuttal to it.

    Best Regards,
    Elroy

    And p.s., I'm working away on the tutorial. A draft will be posted soon (I hope).
    Any software I post in these forums written by me is provided "AS IS" without warranty of any kind, expressed or implied, and permission is hereby granted, free of charge and without restriction, to any person obtaining a copy. To all, peace and happiness.

  35. #35
    Lively Member
    Join Date
    May 2011
    Posts
    99

    Re: SxS Manifest Tutorial -- Any Takers?

    Thanks for eliminating one false hope. The only plane I ever flew was a Jack Armstrong paper Piper Cub puppet. The thread for this icon error 481 problem was 'resolved' 7 years ago.

    With the new .ocx manifest files, I thought my 4 primary applications were good to go!

  36. #36
    PowerPoster dilettante's Avatar
    Join Date
    Feb 2006
    Posts
    24,487

    Re: SxS Manifest Tutorial -- Any Takers?

    My guess would be that your icon resources are broken. If you want true color icons you may have to use rc.exe to create your .res file instead of relying on the VB6 IDE and add-in for them.

  37. #37

    Thread Starter
    VB-aholic & Lovin' It LaVolpe's Avatar
    Join Date
    Oct 2007
    Location
    Beside Waldo
    Posts
    19,541

    Re: SxS Manifest Tutorial -- Any Takers?

    Quote Originally Posted by anderci View Post
    I used IcoFx to change all of the icons from 32 to True Colors (24 bits). There were some that were 8 and 4. In the VB6 project, I opened the main form properties and reselected the icon file. That is the only form specifying an icon.
    I doubt that error has anything to do with manifests.

    You may want to start a thread for this topic. In that thread, I'd suggest explaining where how these icons are added to your project (control/form properties, resource file) what code you are using that generates the error and last but not least, maybe consider posting the specific icon(s) that are causing the problem.
    Insomnia is just a byproduct of, "It can't be done"

    Classics Enthusiast? Here's my 1969 Mustang Mach I Fastback. Her sister '67 Coupe has been adopted

    Newbie? Novice? Bored? Spend a few minutes browsing the FAQ section of the forum.
    Read the HitchHiker's Guide to Getting Help on the Forums.
    Here is the list of TAGs you can use to format your posts
    Here are VB6 Help Files online


    {Alpha Image Control} {Memory Leak FAQ} {Unicode Open/Save Dialog} {Resource Image Viewer/Extractor}
    {VB and DPI Tutorial} {Manifest Creator} {UserControl Button Template} {stdPicture Render Usage}

  38. #38
    Lively Member
    Join Date
    May 2011
    Posts
    99

    Re: SxS Manifest Tutorial -- Any Takers?

    how do i start a thread?

  39. #39

    Thread Starter
    VB-aholic & Lovin' It LaVolpe's Avatar
    Join Date
    Oct 2007
    Location
    Beside Waldo
    Posts
    19,541

    Re: SxS Manifest Tutorial -- Any Takers?

    Quote Originally Posted by anderci View Post
    how do i start a thread?
    Go back a page and click on the big button titled: Post New Thread
    Insomnia is just a byproduct of, "It can't be done"

    Classics Enthusiast? Here's my 1969 Mustang Mach I Fastback. Her sister '67 Coupe has been adopted

    Newbie? Novice? Bored? Spend a few minutes browsing the FAQ section of the forum.
    Read the HitchHiker's Guide to Getting Help on the Forums.
    Here is the list of TAGs you can use to format your posts
    Here are VB6 Help Files online


    {Alpha Image Control} {Memory Leak FAQ} {Unicode Open/Save Dialog} {Resource Image Viewer/Extractor}
    {VB and DPI Tutorial} {Manifest Creator} {UserControl Button Template} {stdPicture Render Usage}

  40. #40
    Lively Member
    Join Date
    May 2011
    Posts
    99

    Re: SxS Manifest Tutorial -- Any Takers?

    Thank you. done: Thread: Error 481 - Invalid picture in compiled exe (vb6 sp6) in Win7 II

    Should I try to remove my off topic posts to this Thread?

Page 1 of 2 12 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width