示例#1
0
        private void WriteParameter(WindowsAccessBridgeModel model, SourceCodeWriter sourceWriter, ParameterDefinition parameterDefinition)
        {
            if (parameterDefinition.IsOutAttribute)
            {
                if (sourceWriter.IsNativeTypes || !model.IsClass(parameterDefinition.Type))
                {
                    sourceWriter.Write("[Out]");
                }
            }

            if (parameterDefinition.IsOut)
            {
                sourceWriter.Write("out ");
            }
            else if (parameterDefinition.IsOutAttribute && model.IsClass(parameterDefinition.Type) && !sourceWriter.IsNativeTypes)
            {
                sourceWriter.Write("out ");
            }
            else if (parameterDefinition.IsRef)
            {
                sourceWriter.Write("ref ");
            }
            if (sourceWriter.IsNativeTypes)
            {
                sourceWriter.WriteMashalAs(parameterDefinition.MarshalAs);
            }
            sourceWriter.WriteType(parameterDefinition.Type);
            sourceWriter.Write(" ");
            sourceWriter.Write(parameterDefinition.Name);
        }
示例#2
0
 private void WriteDelegateType(WindowsAccessBridgeModel model, SourceCodeWriter sourceWriter, FunctionDefinition definition)
 {
     if (sourceWriter.IsNativeTypes)
     {
         if (definition.MarshalAs != null)
         {
             sourceWriter.WriteIndent();
             sourceWriter.WriteMashalAs(definition.MarshalAs);
             sourceWriter.WriteLine();
         }
     }
     sourceWriter.WriteIndent();
     sourceWriter.Write("public delegate ");
     WriteFunctionSignature(model, sourceWriter, definition);
     sourceWriter.Write(";");
     sourceWriter.WriteLine();
 }
示例#3
0
 private void WriteField(WindowsAccessBridgeModel model, SourceCodeWriter sourceWriter, TypeDefinition container, FieldDefinition definition)
 {
     if (sourceWriter.IsNativeTypes || !model.TypeDefinitionNeedsWrapper(container))
     {
         if (definition.MarshalAs != null)
         {
             sourceWriter.WriteIndent();
             sourceWriter.WriteMashalAs(definition.MarshalAs);
             sourceWriter.WriteLine();
         }
     }
     sourceWriter.WriteIndent();
     sourceWriter.Write("public ");
     sourceWriter.WriteType(definition.Type);
     sourceWriter.Write(" ");
     sourceWriter.Write("{0};", definition.Name);
     sourceWriter.WriteLine();
 }