qedit.idl 3.47 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
/*
 * Copyright (C) 2008 Google (Lei Zhang)
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 */

import "oaidl.idl";
import "ocidl.idl";
/* import "dxtrans.idl"; */
import "amstream.idl";
import "msxml.idl";

[
    object,
    uuid(0579154A-2B53-4994-B0D0-E773148EFF85),
    local,
    pointer_default(unique)
]
interface ISampleGrabberCB : IUnknown
{
    HRESULT SampleCB(
        double SampleTime,
        IMediaSample * pSample
    );
    HRESULT BufferCB(
        double SampleTime,
        BYTE * pBuffer,
40
        LONG BufferLen
41 42
    );
}
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68

[
    object,
    uuid(6B652FFF-11FE-4fce-92AD-0266B5D7C78F),
    local,
    pointer_default(unique)
]
interface ISampleGrabber: IUnknown
{
    HRESULT SetOneShot(
        BOOL OneShot
    );

    HRESULT SetMediaType(
        const AM_MEDIA_TYPE * pType
    );

    HRESULT GetConnectedMediaType(
        AM_MEDIA_TYPE * pType
    );

    HRESULT SetBufferSamples(
        BOOL BufferThem
    );

    HRESULT GetCurrentBuffer(
69 70
        [in,out] LONG * pBufferSize,
        [out] LONG * pBuffer
71 72 73 74 75 76 77 78
    );

    HRESULT GetCurrentSample(
        [out] IMediaSample ** ppSample
    );

    HRESULT SetCallback(
        ISampleGrabberCB * pCallback,
79
        LONG WhichMethodToCallback
80 81
    );
};
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98

[
    object,
    uuid(65bd0710-24d2-4FF7-9324-ed2e5d3abafa),
    pointer_default(unique)
]
interface IMediaDet : IUnknown
{
    HRESULT get_Filter(
        [out] IUnknown* *pVal
    );

    HRESULT put_Filter(
        IUnknown* newVal
    );

    HRESULT get_OutputStreams(
99
        [out] LONG *pVal
100 101 102
    );

    HRESULT get_CurrentStream(
103
        [out] LONG *pVal
104 105 106
    );

    HRESULT put_CurrentStream(
107
        LONG newVal
108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
    );

    HRESULT get_StreamType(
        [out] GUID *pVal
    );

    HRESULT get_StreamTypeB(
        [out] BSTR *pVal
    );

    HRESULT get_StreamLength(
        [out] double *pVal
    );

    HRESULT get_Filename(
        [out] BSTR *pVal
    );

    HRESULT put_Filename(
        BSTR newVal
    );

    HRESULT GetBitmapBits(
        double StreamTime,
132
        LONG * pBufferSize,
133
        char * pBuffer,
134 135
        LONG Width,
        LONG Height
136 137 138 139
    );

    HRESULT WriteBitmapBits(
        double StreamTime,
140 141
        LONG Width,
        LONG Height,
142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168
        BSTR Filename
    );

    HRESULT get_StreamMediaType(
        [out] AM_MEDIA_TYPE * pVal
    );

    HRESULT GetSampleGrabber(
        [out] ISampleGrabber ** ppVal
    );

    HRESULT get_FrameRate(
        [out] double *pVal
    );

    HRESULT EnterBitmapGrabMode(
        double SeekTime
    );
};

[
    uuid(65BD0711-24D2-4ff7-9324-ED2E5D3ABAFA),
]
coclass MediaDet
{
    [default] interface IMediaDet;
};
169 170 171 172 173 174 175 176 177 178

enum
{
    E_NOTINTREE = 0x80040400,
    E_RENDER_ENGINE_IS_BROKEN = 0x80040401,
    E_MUST_INIT_RENDERER = 0x80040402,
    E_NOTDETERMINED = 0x80040403,
    E_NO_TIMELINE = 0x80040404,
    S_WARN_OUTPUTRESET = 40404
};