blob: c86088ffc05cc0cc556dec9fff6b694dd14b5f4c [file] [log] [blame]
----
COM References
----
~~Licensed to the Apache Software Foundation (ASF) under one
~~or more contributor license agreements. See the NOTICE file
~~distributed with this work for additional information
~~regarding copyright ownership. The ASF licenses this file
~~to you under the Apache License, Version 2.0 (the
~~"License"); you may not use this file except in compliance
~~with the License. You may obtain a copy of the License at
~~
~~ http://www.apache.org/licenses/LICENSE-2.0
~~
~~Unless required by applicable law or agreed to in writing,
~~software distributed under the License is distributed on an
~~"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~~KIND, either express or implied. See the License for the
~~specific language governing permissions and limitations
~~under the License.
COM References
When Visual Studio compiles code that uses a COM object, it creates a wrapper DLL. For example, compiling code in
<<<MyProject>>> that uses <<<Shell32.dll>>> will result in both <<<MyProject.dll>>> and <<<Interop.Shell32.dll>>>
being created.
This also needs to happen if there is a transitive dependency - if <<<OtherProject>>> depends on <<<MyProject>>>, and
<<<MyProject>>> uses <<<Shell32.dll>>>, then <<<Interop.Shell32.dll>>> also needs to be available when building
<<<OtherProject>>>.
* Requirements
* If needed, ActiveX/COM objects must be pre-installed on the build system. NPanday will not do the installation.
* Adding ActiveX/COM from VS "Add Reference" should update the POM information with a <<<\<dependency\>>>> with type
<<<com_reference>>>.
* Generating POMs from a project containing a COM reference will result in a POM with a dependency with type
<<<com_reference>>>.
* When a dependency with type <<<com_reference>>> is encountered, NPanday will generate the interop wrapper DLL and
use it during compilation.
* Deleting ActiveX/COM reference should remove the <<<com_reference>>> dependency from the POM.
* Adding ActiveX/COM from "Add Maven Artifact" local or remote Maven repository is not allowed. If this attempted, a
meaningful error message should be displayed, and nothing should be added to the POM.
* Building a project with ActiveX/COM references should successfully build if the referenced ActiveX is pre-installed
in the system.
* Building a project with ActiveX/COM references but the actual ActiveX/COM is not in the system should prompt a
meaningful error message.
* Interop wrapper DLLs may be installed/deployed to the local/remote repository and consumed as normal 'library' DLLs.
[]
* References
* {{http://msdn.microsoft.com/en-us/library/sd10k43k.aspx}}
* {{http://msdn.microsoft.com/en-us/magazine/cc301750.aspx}}
[]