public RPC_SERVER_INTERFACE(RpcHandle handle, Ptr <MIDL_SERVER_INFO> pServer, Guid iid)
 {
     this.Length      = (uint)Marshal.SizeOf(typeof(RPC_CLIENT_INTERFACE));
     this.InterfaceId = new RPC_SYNTAX_IDENTIFIER()
     {
         SyntaxGUID    = iid,
         SyntaxVersion = RPC_VERSION.INTERFACE_VERSION
     };
     this.TransferSyntax = new RPC_SYNTAX_IDENTIFIER()
     {
         SyntaxGUID    = RPC_SERVER_INTERFACE.IID_SYNTAX,
         SyntaxVersion = RPC_VERSION.SYNTAX_VERSION
     };
     this.DispatchTable = handle.Pin <RPC_DISPATCH_TABLE>(new RPC_DISPATCH_TABLE()
     {
         DispatchTableCount = 1U,
         DispatchTable      = handle.Pin <RPC_DISPATCH_TABLE_Entry>(new RPC_DISPATCH_TABLE_Entry()
         {
             DispatchMethod = RpcApi.ServerEntry.Handle,
             Zero           = IntPtr.Zero
         }),
         Reserved = IntPtr.Zero
     });
     this.RpcProtseqEndpointCount = 0U;
     this.RpcProtseqEndpoint      = IntPtr.Zero;
     this.DefaultManagerEpv       = IntPtr.Zero;
     this.InterpreterInfo         = pServer.Handle;
     this.Flags = 67108864U;
 }
 public RPC_CLIENT_INTERFACE(Guid iid)
 {
     this.Length      = (uint)Marshal.SizeOf(typeof(RPC_CLIENT_INTERFACE));
     this.InterfaceId = new RPC_SYNTAX_IDENTIFIER()
     {
         SyntaxGUID    = iid,
         SyntaxVersion = RPC_VERSION.INTERFACE_VERSION
     };
     this.TransferSyntax = new RPC_SYNTAX_IDENTIFIER()
     {
         SyntaxGUID    = RPC_CLIENT_INTERFACE.IID_SYNTAX,
         SyntaxVersion = RPC_VERSION.SYNTAX_VERSION
     };
     this.DispatchTable           = IntPtr.Zero;
     this.RpcProtseqEndpointCount = 0U;
     this.RpcProtseqEndpoint      = IntPtr.Zero;
     this.Reserved        = IntPtr.Zero;
     this.InterpreterInfo = IntPtr.Zero;
     this.Flags           = 0U;
 }