Cleanup
[carla.git] / source / includes / vst3sdk / pluginterfaces / vst / ivstpluginterfacesupport.h
blobfa97220c3af7d397bedef9f3ae02c47ddafc8f5d
1 //------------------------------------------------------------------------
2 // Project : VST SDK
3 //
4 // Category : Interfaces
5 // Filename : pluginterfaces/vst/ivstpluginterfacesupport.h
6 // Created by : Steinberg, 11/2018
7 // Description : VST Interfaces
8 //
9 //-----------------------------------------------------------------------------
10 // This file is part of a Steinberg SDK. It is subject to the license terms
11 // in the LICENSE file found in the top-level directory of this distribution
12 // and at www.steinberg.net/sdklicenses.
13 // No part of the SDK, including this file, may be copied, modified, propagated,
14 // or distributed except according to the terms contained in the LICENSE file.
15 //-----------------------------------------------------------------------------
17 #pragma once
19 #include "pluginterfaces/base/funknown.h"
20 #include "pluginterfaces/vst/vsttypes.h"
22 //------------------------------------------------------------------------
23 namespace Steinberg {
24 namespace Vst {
25 //------------------------------------------------------------------------
26 /** Host callback interface for an edit controller: Vst::IPlugInterfaceSupport
27 \ingroup vstIHost vst3612
28 - [host imp]
29 - [released: 3.6.12]
30 - [optional]
32 Allows a plug-in to ask the host if a given plug-in interface is supported/used by the host.
33 It is implemented by the hostContext given when the component is initialized.
35 \section IPlugInterfaceSupportExample Example
37 \code{.cpp}
38 //------------------------------------------------------------------------
39 tresult PLUGIN_API MyPluginController::initialize (FUnknown* context)
41 // ...
42 FUnknownPtr<IPlugInterfaceSupport> plugInterfaceSupport (context);
43 if (plugInterfaceSupport)
45 if (plugInterfaceSupport->isPlugInterfaceSupported (IMidiMapping::iid) == kResultTrue)
46 // IMidiMapping is used by the host
48 // ...
50 \endcode
51 \see IPluginBase
53 class IPlugInterfaceSupport : public FUnknown
55 public:
56 /** Returns kResultTrue if the associated interface to the given _iid is supported/used by the host. */
57 virtual tresult PLUGIN_API isPlugInterfaceSupported (const TUID _iid) = 0;
59 //------------------------------------------------------------------------
60 static const FUID iid;
63 DECLARE_CLASS_IID (IPlugInterfaceSupport, 0x4FB58B9E, 0x9EAA4E0F, 0xAB361C1C, 0xCCB56FEA)
65 //------------------------------------------------------------------------
66 } // namespace Vst
67 } // namespace Steinberg