00001 //------------------------------------------------------------------------ 00002 // Project : VST SDK 00003 // Version : 3.0 00004 // 00005 // Category : Interfaces 00006 // Filename : ivstmessage.h 00007 // Created by : Steinberg, 04/2005 00008 // Modified : $Date: 2008/01/09 12:51:44 $ 00009 // Description : VST Message Interfaces 00010 // 00011 //----------------------------------------------------------------------------- 00012 // LICENSE 00013 // © 2008, Steinberg Media Technologies GmbH, All Rights Reserved 00014 //----------------------------------------------------------------------------- 00015 // This Software Development Kit may not be distributed in parts or its entirety 00016 // without prior written agreement by Steinberg Media Technologies GmbH. 00017 // This SDK must not be used to re-engineer or manipulate any technology used 00018 // in any Steinberg or Third-party application or software module, 00019 // unless permitted by law. 00020 // Neither the name of the Steinberg Media Technologies nor the names of its 00021 // contributors may be used to endorse or promote products derived from this 00022 // software without specific prior written permission. 00023 // 00024 // THIS SDK IS PROVIDED BY STEINBERG MEDIA TECHNOLOGIES GMBH "AS IS" AND 00025 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 00026 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 00027 // IN NO EVENT SHALL STEINBERG MEDIA TECHNOLOGIES GMBH BE LIABLE FOR ANY DIRECT, 00028 // INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 00029 // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 00030 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 00031 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 00032 // OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 00033 // OF THE POSSIBILITY OF SUCH DAMAGE. 00034 //---------------------------------------------------------------------------------- 00035 00036 #ifndef __ivstmessage__ 00037 #define __ivstmessage__ 00038 00039 #include "pluginterfaces/vst/ivstattributes.h" 00040 00041 //------------------------------------------------------------------------ 00042 #include "pluginterfaces/base/falignpush.h" 00043 //------------------------------------------------------------------------ 00044 00045 //------------------------------------------------------------------------ 00046 namespace Steinberg { 00047 namespace Vst { 00048 00049 //------------------------------------------------------------------------ 00050 // IMessage Interface 00051 //------------------------------------------------------------------------ 00052 class IMessage: public FUnknown 00053 { 00054 public: 00055 //------------------------------------------------------------------------ 00057 virtual const char* PLUGIN_API getMessageID () = 0; 00058 00060 virtual void PLUGIN_API setMessageID (const char* id /*in*/) = 0; 00061 00063 virtual IAttributeList* PLUGIN_API getAttributes () = 0; 00064 00065 //------------------------------------------------------------------------ 00066 static const FUID iid; 00067 }; 00068 00069 DECLARE_CLASS_IID (IMessage, 0x936F033B, 0xC6C047DB, 0xBB0882F8, 0x13C1E613) 00070 00071 00072 //------------------------------------------------------------------------ 00073 // IConnectionPoint Interface 00074 //------------------------------------------------------------------------ 00075 class IConnectionPoint: public FUnknown 00076 { 00077 public: 00078 //------------------------------------------------------------------------ 00080 virtual tresult PLUGIN_API connect (IConnectionPoint* other) = 0; 00081 00083 virtual tresult PLUGIN_API disconnect (IConnectionPoint* other) = 0; 00084 00086 virtual tresult PLUGIN_API notify (IMessage* message) = 0; 00087 00088 //------------------------------------------------------------------------ 00089 static const FUID iid; 00090 }; 00091 00092 DECLARE_CLASS_IID (IConnectionPoint, 0x70A4156F, 0x6E6E4026, 0x989148BF, 0xAA60D8D1) 00093 00094 //------------------------------------------------------------------------ 00095 } // namespace Vst 00096 } // namespace Steinberg 00097 00098 //------------------------------------------------------------------------ 00099 #include "pluginterfaces/base/falignpop.h" 00100 //------------------------------------------------------------------------ 00101 00102 #endif // __ivstmessage__