コード例 #1
0
            public static IntPtr Alloc(IGRStream stream, bool writable)
            {
                var payloadSize = Marshaler.SizeOf <Payload>();
                var retval      = Marshal.AllocHGlobal(payloadSize);
                var self        = StreamHolder.Instance.Register(stream);
                var payload     = new Payload
                {
                    Open            = Methods.Instance.Open.Item1,
                    Read            = Methods.Instance.Read.Item1,
                    Seek            = Methods.Instance.Seek.Item1,
                    Close           = Methods.Instance.Close.Item1,
                    Write           = Methods.Instance.Write.Item1,
                    StreamObjectRef = self
                };

                Marshaler.StructureToPtr <Payload>(payload, retval, false);

                if (!writable)
                {
                    Error_Control_Block ecb = new Error_Control_Block();
                    DocumentFiltersBase.Check(ISYS11df.IGR_Extend_Stream(retval, Methods.Instance.StreamCallback.Item1, retval, ref retval, ref ecb), ecb);
                }

                return(retval);
            }
コード例 #2
0
 internal Canvas(DocumentFiltersBase parent, IGRStream stream, CanvasType type, string options)
 {
     _type         = type;
     _options      = options;
     _stream       = stream;
     _streamHandle = stream.NewWritableStreamPtr();
 }
コード例 #3
0
 internal Canvas(DocumentFiltersBase parent, System.IO.Stream stream, CanvasType type, string options)
 {
     _type         = type;
     _options      = options;
     _stream       = new IGRStreamBridge(stream);
     _streamHandle = _stream.NewWritableStreamPtr();
 }
コード例 #4
0
 public long Register(IGRStream stream)
 {
     lock (this)
     {
         long retval = ++_lastid;
         _streams.Add(retval, stream);
         return(retval);
     }
 }
コード例 #5
0
 virtual public void Close(bool closeStream = true)
 {
     if (_handle > 0)
     {
         Check(ISYS11df.IGR_Close_File(_handle, ref ecb));
         _handle = 0;
     }
     if (closeStream && _streamHandle != IntPtr.Zero)
     {
         IGRStream.DestroyStreamPtr(_streamHandle);
         _streamHandle = IntPtr.Zero;
     }
 }
コード例 #6
0
 public void Close()
 {
     if (_handle > 0)
     {
         Check(ISYS11df.IGR_Close_Canvas(_handle, ref ecb));
         _handle = 0;
     }
     if (_streamHandle != IntPtr.Zero)
     {
         IGRStream.DestroyStreamPtr(_streamHandle);
         _streamHandle = IntPtr.Zero;
     }
 }
コード例 #7
0
 public Extractor GetExtractor(IGRStream stream)
 {
     VerifyArgumentNotNull(stream, "stream");
     return(new Extractor(prepare(), stream));
 }
コード例 #8
0
 public Canvas MakeOutputCanvas(IGRStream stream, int type, string options)
 {
     VerifyArgumentNotNull(stream, "stream");
     return(MakeOutputCanvas(stream, (CanvasType)type, options));
 }
コード例 #9
0
 public Canvas MakeOutputCanvas(IGRStream stream, CanvasType type, string options = "")
 {
     VerifyArgumentNotNull(stream, "stream");
     return(new Canvas(prepare(), stream, type, options));
 }
コード例 #10
0
 internal Extractor(DocumentFiltersBase parent, System.IO.Stream stream)
 {
     _stream       = new IGRStreamBridge(stream);
     _streamHandle = _stream.NewStreamPtr();
 }
コード例 #11
0
 internal Extractor(DocumentFiltersBase parent, IGRStream stream)
 {
     _stream       = stream;
     _streamHandle = stream.NewStreamPtr();
 }