Exemplo n.º 1
0
 private void WriteApplicationStruct(WindowsAccessBridgeModel model, SourceCodeWriter sourceWriter, StructDefinition definition)
 {
     if (!model.StructNeedsWrapper(definition))
     {
         WriteStructLayoutAttributeLine(sourceWriter);
     }
     sourceWriter.WriteLine("public struct {0} {{", sourceWriter.GetTypeName(definition.Name));
     WriteFields(model, sourceWriter, definition);
     sourceWriter.WriteLine("}}");
 }
Exemplo n.º 2
0
 private void WriteLibraryStructs(WindowsAccessBridgeModel model, SourceCodeWriter sourceWriter, StreamWriter writer)
 {
     sourceWriter.IsNativeTypes = true;
     model.Structs.ForEach(x => {
         if (model.StructNeedsWrapper(x))
         {
             WriteLibraryStruct(model, sourceWriter, x);
             writer.WriteLine();
         }
     });
 }
Exemplo n.º 3
0
        private void WriteApplicationFunctionsClass(WindowsAccessBridgeModel model, SourceCodeWriter sourceWriter)
        {
            sourceWriter.IsNativeTypes = false;
            sourceWriter.WriteLine("/// <summary>");
            sourceWriter.WriteLine("/// Implementation of <see cref=\"AccessBridgeFunctions\"/> using <code>WindowsAccessBridge DLL</code>", GetLegacySuffix(sourceWriter));
            sourceWriter.WriteLine("/// entry points implemented in <see cref=\"AccessBridgeEntryPoints{0}\"/>", GetLegacySuffix(sourceWriter));
            sourceWriter.WriteLine("/// </summary>");
            sourceWriter.WriteLine("internal partial class AccessBridgeNativeFunctions{0} : AccessBridgeFunctions {{", GetLegacySuffix(sourceWriter));
            sourceWriter.IncIndent();

            sourceWriter.WriteLine();
            sourceWriter.WriteLine("#region Function implementations");
            sourceWriter.WriteLine();
            foreach (var function in model.Functions)
            {
                WriteApplicationFunctionImplementation(model, sourceWriter, function);
            }
            sourceWriter.WriteLine("#endregion");
            sourceWriter.WriteLine();

            sourceWriter.WriteLine("#region Wrap/Unwrap structs");
            sourceWriter.WriteLine();
            foreach (var definition in model.Structs)
            {
                if (model.StructNeedsWrapper(definition))
                {
                    WriteApplicationWrapStructFunctions(model, sourceWriter, definition);
                }
            }
            sourceWriter.WriteLine("#endregion");
            sourceWriter.WriteLine();

            sourceWriter.WriteLine("#region CopyWrap/CopyUnwrap classes");
            sourceWriter.WriteLine();
            foreach (var definition in model.Classes)
            {
                if (model.ClassNeedsWrapper(definition))
                {
                    WriteApplicationCopyClassFunctions(model, sourceWriter, definition);
                }
            }
            sourceWriter.WriteLine("#endregion");
            sourceWriter.WriteLine();

            sourceWriter.DecIndent();
            sourceWriter.WriteLine("}}");
            sourceWriter.WriteLine();
        }