File: MediaInfoShellExt_.h

package info (click to toggle)
libmediainfo 0.7.70-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 13,220 kB
  • ctags: 16,696
  • sloc: cpp: 157,850; ansic: 4,082; xml: 1,264; cs: 944; java: 719; python: 565; sh: 345; makefile: 260; pascal: 195
file content (70 lines) | stat: -rwxr-xr-x 2,207 bytes parent folder | download | duplicates (13)
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
40
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
69
70
// MediaInfoShellExt_.h : Declaration of the CMediaInfoShellExt_

#pragma once
#include "resource.h"       // main symbols
#include "MediaInfoShellExt.h"
#include <comdef.h>
struct __declspec(uuid("00021500-0000-0000-c000-000000000046")) IQueryInfo;
#include <shlobj.h>
#include <string>


#if defined(_WIN32_WCE) && !defined(_CE_DCOM) && !defined(_CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA)
#error "Single-threaded COM objects are not properly supported on Windows CE platform, such as the Windows Mobile platforms that do not include full DCOM support. Define _CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA to force ATL to support creating single-thread COM object's and allow use of it's single-threaded COM object implementations. The threading model in your rgs file was set to 'Free' as that is the only threading model supported in non DCOM Windows CE platforms."
#endif



// CMediaInfoShellExt_

class ATL_NO_VTABLE CMediaInfoShellExt_ :
    public CComObjectRootEx<CComSingleThreadModel>,
    public CComCoClass<CMediaInfoShellExt_, &CLSID_MediaInfoShellExt_>,
    public IPersistFile,
    public IQueryInfo
{
public:
    CMediaInfoShellExt_()
    {
    }

DECLARE_REGISTRY_RESOURCEID(IDR_MEDIAINFOSHELLEXT_)

DECLARE_NOT_AGGREGATABLE(CMediaInfoShellExt_)

BEGIN_COM_MAP(CMediaInfoShellExt_)
    COM_INTERFACE_ENTRY(IPersistFile)
    COM_INTERFACE_ENTRY(IQueryInfo)
END_COM_MAP()



    DECLARE_PROTECT_FINAL_CONSTRUCT()

    HRESULT FinalConstruct()
    {
        return S_OK;
    }

    void FinalRelease()
    {
    }

protected:
    std::wstring FileName;

public:
    // IPersistFile
    STDMETHOD(GetClassID)(LPCLSID)      { return E_NOTIMPL; }
    STDMETHOD(IsDirty)()                { return E_NOTIMPL; }
    STDMETHOD(Load)(LPCOLESTR, DWORD);
    STDMETHOD(Save)(LPCOLESTR, BOOL)    { return E_NOTIMPL; }
    STDMETHOD(SaveCompleted)(LPCOLESTR) { return E_NOTIMPL; }
    STDMETHOD(GetCurFile)(LPOLESTR*)    { return E_NOTIMPL; }

    // IQueryInfo
    STDMETHOD(GetInfoFlags)(DWORD*)     { return E_NOTIMPL; }
    STDMETHOD(GetInfoTip)(DWORD, LPWSTR*);
};

OBJECT_ENTRY_AUTO(__uuidof(MediaInfoShellExt_), CMediaInfoShellExt_)