summaryrefslogtreecommitdiff
path: root/audio/tests/PinResourceHelpers/TestResource.h
blob: 7bc6a792757aec95cb4c1e4f04b57521b116e4be (plain)
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
// ------------------------------------------------------------------------------
//
// Copyright (C) Microsoft. All rights reserved.
//
// File Name:
//
//  TestResource.h
//
// Abstract:
//
//  TAEF Test Resource
//
// -------------------------------------------------------------------------------
#pragma once

#include "HalfApp.h"

class CPinTestResource :
    public WEX::TestExecution::ITestResource,
    public IHalfAppContainer
{
public:
    //IUnknown
    STDMETHODIMP_(ULONG) AddRef();
    STDMETHODIMP_(ULONG) Release();
    STDMETHODIMP QueryInterface(
        __in REFIID riid,
        __deref_out VOID **ppvObject
    );
    // ITestResouce
    STDMETHODIMP GetGuid(GUID* pGuid);
    STDMETHODIMP SetGuid(GUID guid);
    STDMETHODIMP GetValue(BSTR name, BSTR* pValue);
    STDMETHODIMP SetValue(BSTR name, BSTR value);

    //IHalfAppContainer
    STDMETHODIMP GetHalfApp(CHalfApp ** ppHalfApp);

    static HRESULT STDMETHODCALLTYPE CreateInstance(
        CHalfApp * pHalf,
        REFGUID guid,
        WEX::TestExecution::ITestResource ** ppOut
    );

private:

    CPinTestResource();
    ~CPinTestResource();

    HRESULT STDMETHODCALLTYPE Initialize(
        CHalfApp * pHalf,
        REFGUID guid
    );

    LPWSTR ModeName(REFGUID guidMode);
    LPWSTR PinName(EndpointConnectorType eConnectorType, bool IsMVA);

    CComBSTR m_szType;
    CComBSTR m_szName;
    CComBSTR m_szId;
    CComBSTR m_szMode;
    CComBSTR m_szPin;

    CAutoPtr<CHalfApp> m_spHalfApp;

    ULONG m_cRef;
    GUID m_guid;
};