Registration-free COM with Manifest File


Registration-free COM is a mechanism available on the Microsoft Windows XP (SP2 for .NET-based components) and Microsoft Windows Server 2003 platforms. As the name suggests, the mechanism enables easy (for example, using XCOPY) deployment of COM components to a machine without the need to register them.

With Registration-free COM, you don't have to use "regsvr32" to register the dll as COM object, you also don't need to worry other version of this COM installed on the same machine overwrite your current version.

We strongly recommend that you use Registration-free COM to distribute EAGetMail ActiveX Object with your standard exe application. ASP, VBScript or other script application is not suitable with this feature.

Using Manifest File

For standard exe application, you just need a manifest file like this: You can find latest manifest file in Installation path\Include\manifest\EAGetMailObj.manifest

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <file name="EAGetMailObj.dll" hashalg="SHA1">
    <comClass clsid="{953EFD7C-8FCE-4D9C-9BD9-E6F19A1B7FC9}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" description="MailClient Class"></comClass>
    <comClass clsid="{AD59203B-0C25-4192-98F2-C680D6A16738}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" description="Attachment Class"></comClass>
    <comClass clsid="{76BB6AA2-49D5-4452-97A0-C5F7B8910D12}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" description="Certificate Class"></comClass>
    <comClass clsid="{3F46EBC3-9D7F-4F73-B779-F2FC6C0B6EE7}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" description="HeaderCollection Class"></comClass>
    <comClass clsid="{206AF1CC-DF89-4E4E-96EB-40D7641FACFD}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" description="HeaderItem Class"></comClass>
    <comClass clsid="{C06966A4-9F1D-497F-84B9-9204F31994A3}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" description="Imap4Folder Class"></comClass>
    <comClass clsid="{AE30137E-07C8-403F-8772-07AF79C1DD2E}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" description="Mail Class"></comClass>
    <comClass clsid="{D6DA04B9-6D72-424A-9582-9752409AAD9C}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" description="MailAddress Class"></comClass>
    <comClass clsid="{CFED4866-F709-481F-89C1-4D1BF0F830D3}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" description="MailInfo Class"></comClass>
    <comClass clsid="{65ACB9B1-68E6-460B-9738-720E0E3A6DD3}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" description="MailServer Class"></comClass>
    <comClass clsid="{029033B3-0CFF-452E-8832-8101FDE8D0B4}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" description="MailReport Class"></comClass>
    <comClass clsid="{8B092B61-AE66-4413-B4D0-6B97FBE6DA08}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" description="Tools Class"></comClass>
    <comClass clsid="{440B896B-8AAD-4FEE-8F39-066F79F73E5C}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" description="UIDLManager Class"></comClass>
    <comClass clsid="{7096722C-E10D-42D9-A284-1E582D2B27B3}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" description="UIDLItem Class"></comClass>
    <comClass clsid="{B511D930-097E-4E90-9753-956A067D9E0E}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" description="GetMailInfosParamType Class"></comClass>
    <comClass clsid="{624D5C57-88A2-4F35-9F3A-5D7CFB18D048}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" description="AddressCollection Class"></comClass>
    <comClass clsid="{149A39C9-6C10-49D7-8B8A-D46F5E529315}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" description="AttachmentCollection Class"></comClass>
    <comClass clsid="{77072FF5-D841-4B03-BFD0-BD0D038E71CB}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" description="MailInfoCollection Class"></comClass>
    <comClass clsid="{59A2F86B-1007-4262-A8AF-D4A912C2A5DD}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" description="FolderCollection Class"></comClass>
    <comClass clsid="{05F813DF-CAE6-43C0-AF72-738869697FC0}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" description="CategoryCollection Class"></comClass>
    <comClass clsid="{0565E510-02C1-4A2A-AAF6-42A0AEA7C5D0}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" description="Category Class"></comClass>
    <comClass clsid="{704C7CE4-C00B-4784-80EA-79F865B3ADCC}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" description="SimpleJsonArray Class"></comClass>
    <comClass clsid="{A308FA17-B94E-4881-9C1E-E30B936E42C2}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" description="SimpleJsonParser Class"></comClass>
    <comClass clsid="{FAF4DE6F-1303-4851-B659-8F8BEB51F1A0}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" description="OAuthResponseParser Class"></comClass>
    <comClass clsid="{EBF04F6B-74E2-4705-A75C-1FBE90DC5832}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" description="BrowserUi Class"></comClass>
    <comClass clsid="{DD3F1FAC-AC6D-4D6A-8387-E61588A20551}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" description="HttpListener Class"></comClass>
    <typelib tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" version="1.0" helpdir="" flags="HASDISKIMAGE"></typelib>
    </file>
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
        <requestedPrivileges>
        <requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
        </requestedPrivileges>
    </security>
    </trustInfo>
    <comInterfaceExternalProxyStub name="ICategory" iid="{37AEBDA7-44BF-4C51-B32E-2527312D4AB8}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
    <comInterfaceExternalProxyStub name="ICategoryCollection" iid="{3ED5EED7-9AB0-4D85-9665-5C530EBED66A}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
    <comInterfaceExternalProxyStub name="IMailClient" iid="{F7463672-BDA9-428F-8A03-E30C0F1B7EA8}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
    <comInterfaceExternalProxyStub name="IImap4Folder" iid="{860EA4DE-9B7D-4C1B-8DC0-67B74B981F41}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
    <comInterfaceExternalProxyStub name="IFolderCollection" iid="{2BD47F56-8B9E-4B8F-A253-63C9D79BD674}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
    <comInterfaceExternalProxyStub name="IMailInfo" iid="{CE217339-CBC8-4A35-B0F1-93E376462658}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
    <comInterfaceExternalProxyStub name="IMailServer" iid="{33520F78-AF50-44E7-9730-00E4083AA765}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
    <comInterfaceExternalProxyStub name="IMail" iid="{2F71E6CF-9417-46EB-B7C8-1760FDAC17C6}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
    <comInterfaceExternalProxyStub name="ICertificate" iid="{98790582-CE44-47C9-8F70-90DCFEAF46AC}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
    <comInterfaceExternalProxyStub name="IMailReport" iid="{372B933C-CB50-48C5-81E5-B1C3122379B1}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
    <comInterfaceExternalProxyStub name="IHeaderCollection" iid="{00AC14C1-BCB6-48AF-BEBF-C1F41BA7CF07}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
    <comInterfaceExternalProxyStub name="IHeaderItem" iid="{EF9B19FF-8766-4931-8A3A-405A91475645}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
    <comInterfaceExternalProxyStub name="IAttachment" iid="{D531D50D-CDC6-400A-B938-46D36382173E}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
    <comInterfaceExternalProxyStub name="IMailAddress" iid="{9E7048E1-3574-4EFA-AE7B-67A015BA470F}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
    <comInterfaceExternalProxyStub name="IAddressCollection" iid="{BDF40F78-205A-4651-B0C6-4B2870485E5D}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
    <comInterfaceExternalProxyStub name="IAttachmentCollection" iid="{380C4C5A-C4AF-4314-9B5F-53EC125DE749}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
    <comInterfaceExternalProxyStub name="IGetMailInfosParamType" iid="{E9777121-432A-41A1-A895-BE0BBBDD1969}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
    <comInterfaceExternalProxyStub name="IMailInfoCollection" iid="{861D4252-62F3-4ECD-8F48-BD1C1F703CD1}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
    <comInterfaceExternalProxyStub name="ITools" iid="{6AA9C7EE-BBD2-4941-A348-9E9C343366D2}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
    <comInterfaceExternalProxyStub name="IUIDLManager" iid="{63D8237A-5DC3-4C82-BE6B-073B32A78759}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
    <comInterfaceExternalProxyStub name="IUIDLItem" iid="{2BB66CC9-2E20-4567-97C0-494109F5B12B}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
    <comInterfaceExternalProxyStub name="ISimpleJsonArray" iid="{40936428-092E-4974-8315-0163B6D33E94}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
    <comInterfaceExternalProxyStub name="ISimpleJsonParser" iid="{9C825340-7B0A-432C-B082-DEEB8B2A3E64}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
    <comInterfaceExternalProxyStub name="IHttpListener" iid="{097F935E-A866-40D1-84FE-E453727F53F0}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
    <comInterfaceExternalProxyStub name="IBrowserUi" iid="{3E500587-4A39-4CD9-BE41-5CDD0D0A26C3}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
    <comInterfaceExternalProxyStub name="_IMailClientEvents" iid="{F9C5042F-13E4-42B7-8160-F511C74A9904}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
    <comInterfaceExternalProxyStub name="IOAuthResponseParser" iid="{2CBA3E15-44BB-428C-9DD5-68DC02957C37}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" proxyStubClsid32="{00020424-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
    <comInterfaceExternalProxyStub name="_ILocalHttpListenerEvents" iid="{D6DB71A9-C346-4DA0-A6CF-9AD59276DE37}" tlbid="{5FA52C10-18FC-4D81-8542-50F9A2DC60A3}" proxyStubClsid32="{00020420-0000-0000-C000-000000000046}"></comInterfaceExternalProxyStub>
</assembly>
    

Then save it as yourappname.exe.manifest. For example, your application exe file is: myproject1.exe, then save it as myproject1.exe.manifest.

Finally, copy myproject1.exe, myproject1.exe.manifest and EAGetMailObj.dll to the same folder on target machine, your application can use EAGetMailObj ActiveX Object directly without COM-registration.


Now many modern programming tools support embedded manifest. Those tools compile a manifest resource to the exe file automatically. In this case, your external manifest (yourappname.exe.manifest) will be ignored. So if your tool supports embedded manifest, you can add above content to your embedded manifest or disable your embedded manifest in your tool and use external yourappname.exe.manifest.

Samples

In Samples_VB6, Samples_VC and Samples_Delphi sample folder, all projects provide demo external manifest file or embedded manifest setting. To get the full samples of EAGetMail, please refer to Samples section.

Using MT.exe to embed manifest to exe

If you have correct external manifest file existed on the same foder of your exe file, but it still doesn't work, then you can use MT.exe to embed manifest file to your exe file.

The Mt.exe file is a tool that generates signed files and catalogs. It is available in the Microsoft Windows Software Development Kit (SDK). Mt.exe requires that the file referenced in the manifest be present in the same directory as the manifest.

If you have Visual Studio installed on your machine, you can open Visual Studio Command Prompt and embed manifest like this:

input the following command and press enter:
mt -manifest "project1.exe.manifest" -outputresource:"project1.exe"

Then project1.exe.manifest will be embedded to project1.exe, and you no longer need external project1.exe.manifest file.

MT.exe can be used with any native exe application including exe compiled by Delphi or C++ Builder. If you don't have Visual Studio installed, you can download Windows Software Development Kit (SDK) from Microsoft Website and get this tool.

See Also

User Authentication and SSL Connection
Enable TLS 1.2 on Windows XP/2003/2008/7/2008 R2
Using Gmail IMAP4 OAUTH
Using Gmail/GSuite Service Account + IMAP4 OAUTH
Using Office365 EWS OAUTH
Using Office365 EWS OAUTH in Background Service
Using Hotmail IMAP4 OAUTH
Digital Signature and E-mail Encryption/Decryption
Unique Identifier (UIDL) in POP3 and IMAP4 protocol
Parse Bounced Email (delivery-report)
Work with winmail.dat (TNEF Parser)
EAGetMail ActiveX Object References
EAGetMail POP3 & IMAP4 Component Samples