Summary
    This tasks allows you to run MIDL.exe.
    
		- Assembly
 - NAnt
.VisualCpp .dll  - Namespace
 - NAnt
.VisualCpp .Tasks  - Interfaces
 - Base Types
 - 
									
- Object
 - Element
 - Task
 - ExternalProgramBase
 
 
							graph BT
	Type-->Base0["ExternalProgramBase"]
	click Base0 "/api/NAnt.Core.Tasks/ExternalProgramBase"
	Base0-->Base1["Task"]
	click Base1 "/api/NAnt.Core/Task"
	Base1-->Base2["Element"]
	click Base2 "/api/NAnt.Core/Element"
	Base2-->Base3["Object"]
	Type-.->Interface0["IConditional"]
	click Interface0 "/api/NAnt.Core/IConditional"
	Type["MidlTask"]
class Type type-node
						
					Syntax
[TaskName("midl")]
public class MidlTask : ExternalProgramBase, IConditional
		Examples
    <midl
    env="win32"
    Oi="cf"
    tlb="${outputdir}\TempAtl.tlb"
    header="${outputdir}\TempAtl.h"
    iid="${outputdir}\TempAtl_i.c"
    proxy="${outputdir}\TempAtl_p.c"
    filename="TempAtl.idl"
>
    <defines>
        <define name="_DEBUG"/>
        <define name="WIN32" value="1"/>
    </defines>
    <options>
        <option name="/mktyplib203"/>
        <option name="/error" value="allocation"/>
    </options>
</midl>
    Remarks
This task only supports a small subset of the MIDL.EXE command line switches, but you can use the options element to specify any other unsupported commands you want to specify.
Attributes
| Type | Description | 
|---|---|
| TaskNameAttribute | Indicates that class should be treated as a task. | 
Fields
| Name | Constant Value | Summary | 
|---|---|---|
| UnknownExitCode | -1000 | 
									 
    Defines the exit code that will be returned by  
											NAnt.Core.Tasks.ExternalProgramBase.ExitCode
    if the process could not be started, or did not exit (in time).
    Inherited from ExternalProgramBase 
											static 
								 | 
							
Properties
| Name | Value | Summary | 
|---|---|---|
| Acf | string | 
									 
    The /acf switch allows the user to supply an
    explicit ACF file name. The switch also
    allows the use of different interface names in
    the IDL and ACF files.
     
								 | 
							
| Align | string | 
									 
    The /align switch is functionally the same as the
    MIDL /Zp option and is recognized by the MIDL compiler
    solely for backward compatibility with MkTypLib.
     
								 | 
							
| AppConfig | bool | 
									 
    The /app_config switch selects application-configuration
    mode, which allows you to use some ACF keywords in the
    IDL file. With this MIDL compiler switch, you can omit
    the ACF and specify an interface in a single IDL file.
     
								 | 
							
| Arguments | ArgumentCollection | 
									 
    The command-line arguments for the external program.
     
											Inherited from ExternalProgramBase 
								 | 
							
| BaseDirectory | DirectoryInfo | 
									 
    Gets the working directory for the application.
     
											Inherited from ExternalProgramBase 
								 | 
							
| Char | string | 
									 
    The /char switch helps to ensure that the MIDL compiler
    and C compiler operate together correctly for all char
    and small types.
     
								 | 
							
| Client | string | 
									 
    The /client switch directs the MIDL compiler to generate
    client-side C source files for an RPC interface
     
								 | 
							
| CommandLine | string | 
									 
    Gets the command-line arguments, separated by spaces.
     
											Inherited from ExternalProgramBase 
								 | 
							
| CStub | string | 
									 
    The /cstub switch specifies the name of the client
    stub file for an RPC interface.
     
								 | 
							
| CustomXmlProcessing | bool | 
									 
    Gets a value indicating whether the element is performing additional
    processing using the  
											NAnt.Core.Element.XmlNode that was used to 
    initialize the element.
    Inherited from Element 
								 | 
							
| Defines | OptionCollection | 
									 
    Macro definitions to pass to mdil.exe.
    Each entry will generate a /D
     
								 | 
							
| DllData | FileInfo | 
									 
    Specifies the file name for the generated dlldata file for a proxy
    DLL. The default file name Dlldata.c is used if 
     
								NAnt.VisualCpp.Tasks.MidlTask.DllData is not specified.
     | 
							
| Env | string | 
									 
    The /env switch selects the
    environment in which the application runs.
     
								 | 
							
| ErrorWriter | TextWriter | 
									 
    Gets or sets the  
											System.IO.TextWriter to which error output
    of the external program will be written.
    Inherited from ExternalProgramBase 
								 | 
							
| ExeName | string | 
									 
    The name of the executable that should be used to launch the 
    external program.
     
											Inherited from ExternalProgramBase 
								 | 
							
| ExitCode | int | 
									 
    Gets the value that the process specified when it terminated.
     
											Inherited from ExternalProgramBase 
								 | 
							
| FailOnError | bool | 
									 
    Determines if task failure stops the build, or is just reported. 
    The default is  
											true.
    Inherited from Task 
								 | 
							
| Filename | FileInfo | 
									 
    Name of .IDL file to process.
     
								 | 
							
| Header | FileInfo | 
									 
    Specifies the name of the header file.
     
								 | 
							
| IfDefined | bool | 
									 
    If  
											true then the task will be executed; otherwise, 
    skipped. The default is true.
    Inherited from Task 
								 | 
							
| Iid | FileInfo | 
									 
    Specifies the name of the interface identifier file for a COM 
    interface, overriding the default name obtained by adding _i.c 
    to the IDL file name.
     
								 | 
							
| IncludeDirs | FileSet | 
									 
    The list of directories in which to search for include files.
     
								 | 
							
| Location | Location | 
									 
    Gets or sets the location in the build file where the element is 
    defined.
     
											Inherited from Element 
								 | 
							
| LogPrefix | string | 
									 
    The prefix used when sending messages to the log.
     
											Inherited from Task 
								 | 
							
| Managed | ManagedExecution | 
									 
    Specifies whether the external program should be treated as a managed
    application, possibly forcing it to be executed under the currently
    targeted version of the CLR.
     
											Inherited from ExternalProgramBase 
								 | 
							
| Name | string | 
									 
    The name of the task.
     
											Inherited from Task 
								 | 
							
| NamespaceManager | XmlNamespaceManager | 
									 
    Gets or sets the  
											System.Xml.XmlNamespaceManager.
    Inherited from Element 
								 | 
							
| Oi | string | 
									 
    The /Oi switch directs the MIDL compiler to
    use a fully-interpreted marshaling method.
    The /Oic and /Oicf switches provide additional
    performance enhancements.
     
								 | 
							
| Options | OptionCollection | 
									 
    Additional options to pass to midl.exe.
     
								 | 
							
| Output | FileInfo | 
									 
    Gets the file to which the standard output should be redirected.
     
											Inherited from ExternalProgramBase 
								 | 
							
| OutputAppend | bool | 
									 
    Gets a value indicating whether output will be appended to the 
     
											NAnt.Core.Tasks.ExternalProgramBase.Output.
    Inherited from ExternalProgramBase 
								 | 
							
| OutputWriter | TextWriter | 
									 
    Gets or sets the  
											System.IO.TextWriter to which standard output
    messages of the external program will be written.
    Inherited from ExternalProgramBase 
								 | 
							
| Parent | Object | 
									 
    Gets or sets the parent of the element.
     
											Inherited from Element 
								 | 
							
| ProcessId | int | 
									 
    Gets the unique identifier for the spawned application.
     
											Inherited from ExternalProgramBase 
								 | 
							
| ProgramArguments | string | 
									 
    Gets the command-line arguments for the external program.
     
								 | 
							
| ProgramFileName | string | 
									 
    Filename of program to execute
     
								 | 
							
| Project | Project | 
									 
    Gets or sets the  
											NAnt.Core.Element.Project to which this element belongs.
    Inherited from Element 
								 | 
							
| Properties | PropertyDictionary | 
									 
    Gets the properties local to this  
											NAnt.Core.Element and the 
    NAnt.Core.Element.Project.
    Inherited from Element 
								 | 
							
| Proxy | FileInfo | 
									 
    Specifies the name of the interface proxy file for a COM interface.
     
								 | 
							
| Spawn | bool | 
									 
    Gets or sets a value indicating whether the application should be
    spawned. If you spawn an application, its output will not be logged
    by NAnt. The default is  
											false.
    Inherited from ExternalProgramBase 
								 | 
							
| Threshold | Level | 
									 
    Gets or sets the log threshold for this  
											NAnt.Core.Task. By
    default the threshold of a task is NAnt.Core.Level.Debug,
    causing no messages to be filtered in the task itself.
    Inherited from Task 
								 | 
							
| TimeOut | int | 
									 
    The maximum amount of time the application is allowed to execute, 
    expressed in milliseconds.  Defaults to no time-out.
     
											Inherited from ExternalProgramBase 
								 | 
							
| Tlb | FileInfo | 
									 
    Specifies a file name for the type library generated by the MIDL 
    compiler.
     
								 | 
							
| Undefines | OptionCollection | 
									 
    Macro undefines (/U) to pass to mdil.
     
								 | 
							
| UnlessDefined | bool | 
									 
    Opposite of  
											NAnt.Core.Task.IfDefined. If false 
    then the task will be executed; otherwise, skipped. The default is 
    false.
    Inherited from Task 
								 | 
							
| UseRuntimeEngine | bool | 
									 
    Specifies whether the external program is a managed application
    which should be executed using a runtime engine, if configured. 
    The default is  
											false.
    Inherited from ExternalProgramBase 
								 | 
							
| Verbose | bool | 
									 
    Determines whether the task should report detailed build log messages. 
    The default is  
											false.
    Inherited from Task 
								 | 
							
| XmlNode | XmlNode | 
									 
    Gets or sets the XML node of the element.
     
											Inherited from Element 
								 | 
							
Methods
| Name | Value | Summary | 
|---|---|---|
| CopyTo | 
								void | 
									 
    Copies all instance data of the  
											NAnt.Core.Element to a given
    NAnt.Core.Element.
    Inherited from Element 
								 | 
							
| Execute | 
								void | 
									 
    Executes the task unless it is skipped.
     
											Inherited from Task 
								 | 
							
| ExecuteTask | 
								void | 
									 
    This is where the work is done.
     
								 | 
							
| Get | 
								XmlNode | 
									 
    Locates the XML node for the specified attribute in either the
    configuration section of the extension assembly or the.project.
     
											Inherited from Task 
								 | 
							
| Get | 
								XmlNode | 
									
											 Inherited from Element 
								 | 
							
| GetLocation | 
								Location | 
									 
    Retrieves the location in the build file where the element is 
    defined.
     
											Inherited from Element 
								 | 
							
| Initialize | 
								void | 
									 Initializes the task. 
											Inherited from Task 
								 | 
							
| Initialize | 
								void | 
									 
    Performs default initialization.
     
											Inherited from Element 
								 | 
							
| Initialize | 
								Element | 
									 
    Initializes the build element.
     
											Inherited from Element 
											static 
								 | 
							
| InitializeElement | 
								void | 
									 
    Derived classes should override to this method to provide extra 
    initialization and validation not covered by the base class.
     
											Inherited from Element 
								 | 
							
| InitializeTask | 
								void | 
									 Initializes the task. 
											Inherited from Task 
								 | 
							
| Initialize | 
								void | 
									 
    Initializes the configuration of the task using configuration 
    settings retrieved from the NAnt configuration file.
     
											Inherited from Task 
								 | 
							
| InitializeXml | 
								void | 
									 
    Initializes all build attributes and child elements.
     
											Inherited from Element 
								 | 
							
| IsLogEnabledFor | 
								bool | 
									 
    Determines whether build output is enabled for the given 
     
											NAnt.Core.Level.
    Inherited from Task 
								 | 
							
| Log | 
								void | 
									 
    Logs a message with the given priority.
     
											Inherited from Task 
								 | 
							
| Log | 
								void | 
									 
    Logs a formatted message with the given priority.
     
											Inherited from Task 
								 | 
							
| PrepareProcess | 
								void | 
									 
    Updates the  
											System.Diagnostics.ProcessStartInfo of the specified 
    System.Diagnostics.Process.
    Inherited from ExternalProgramBase 
								 | 
							
| StartProcess | 
								Process | 
									 
    Starts the process and handles errors.
     
											Inherited from ExternalProgramBase 
								 | 
							
