1 //------------------------------------------------------------------------
4 // Category : Interfaces
5 // Filename : pluginterfaces/vst/ivstpluginterfacesupport.h
6 // Created by : Steinberg, 11/2018
7 // Description : VST Interfaces
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 //-----------------------------------------------------------------------------
19 #include "pluginterfaces/base/funknown.h"
20 #include "pluginterfaces/vst/vsttypes.h"
22 //------------------------------------------------------------------------
25 //------------------------------------------------------------------------
26 /** Host callback interface for an edit controller: Vst::IPlugInterfaceSupport
27 \ingroup vstIHost vst3612
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
38 //------------------------------------------------------------------------
39 tresult PLUGIN_API MyPluginController::initialize (FUnknown* context)
42 FUnknownPtr<IPlugInterfaceSupport> plugInterfaceSupport (context);
43 if (plugInterfaceSupport)
45 if (plugInterfaceSupport->isPlugInterfaceSupported (IMidiMapping::iid) == kResultTrue)
46 // IMidiMapping is used by the host
53 class IPlugInterfaceSupport
: public FUnknown
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 //------------------------------------------------------------------------
67 } // namespace Steinberg