]> git.sesse.net Git - vlc/commitdiff
ActiveX: misc fixes & improvements
authorDamien Fouilleul <damienf@videolan.org>
Fri, 21 Jan 2005 13:52:11 +0000 (13:52 +0000)
committerDamien Fouilleul <damienf@videolan.org>
Fri, 21 Jan 2005 13:52:11 +0000 (13:52 +0000)
activex/axvlc.idl
activex/axvlc.tlb
activex/connectioncontainer.cpp
activex/connectioncontainer.h
activex/plugin.cpp
activex/plugin.h
activex/provideclassinfo.cpp
activex/test.html
activex/utils.cpp
activex/vlccontrol.cpp

index 727d7af02f6464c3c8ee6705cd7bb2825a1ff97e..92f82a65b61f7664b5acaed71ffd12915af38c80 100644 (file)
@@ -126,11 +126,11 @@ library AXVLC
         properties:\r
         methods:\r
             [id(1), helpstring("Playback in progress")]\r
-            void OnPlay();\r
+            void Play();\r
             [id(2), helpstring("Playback has paused")]\r
-            void OnPause();\r
+            void Pause();\r
             [id(3), helpstring("Playback has stopped")]\r
-            void OnStop();\r
+            void Stop();\r
     };\r
 \r
     [\r
index 3868b784e2541a97715fad6464d17e517488d9bb..2f995b2e4fb419f276084c56d14f006b17079df9 100755 (executable)
Binary files a/activex/axvlc.tlb and b/activex/axvlc.tlb differ
index 9908f944bf73f5dc29afe487cf5e09fb121609b9..6fd504a6980bc8ab5af4af94cc737233bfd6c794 100644 (file)
@@ -133,7 +133,7 @@ STDMETHODIMP VLCConnectionPoint::EnumConnections(IEnumConnections **ppEnum)
     return (NULL != *ppEnum ) ? S_OK : E_OUTOFMEMORY;\r
 };\r
 \r
-void VLCConnectionPoint::fireEvent(DISPID dispId, LCID lcid, DISPPARAMS* pDispParams)\r
+void VLCConnectionPoint::fireEvent(DISPID dispId, DISPPARAMS* pDispParams)\r
 {\r
     vector<CONNECTDATA>::iterator end = _connections.end();\r
     vector<CONNECTDATA>::iterator iter = _connections.begin();\r
@@ -146,13 +146,7 @@ void VLCConnectionPoint::fireEvent(DISPID dispId, LCID lcid, DISPPARAMS* pDispPa
             IDispatch *pDisp;\r
             if( SUCCEEDED(cd.pUnk->QueryInterface(IID_IDispatch, (LPVOID *)&pDisp)) )\r
             {\r
-                unsigned int puArgErr;\r
-                VARIANT vRes;\r
-\r
-                if( SUCCEEDED(pDisp->Invoke(dispId, IID_NULL, lcid, DISPATCH_METHOD, pDispParams, &vRes, NULL, &puArgErr)) )\r
-                {\r
-                    VariantClear(&vRes);\r
-                }\r
+                pDisp->Invoke(dispId, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, pDispParams, NULL, NULL, NULL);\r
                 pDisp->Release();\r
             }\r
         }\r
@@ -281,9 +275,9 @@ STDMETHODIMP VLCConnectionPointContainer::FindConnectionPoint(REFIID riid, IConn
     return NOERROR;\r
 };\r
 \r
-void VLCConnectionPointContainer::fireEvent(DISPID dispId, LCID lcid, DISPPARAMS* pDispParams)\r
+void VLCConnectionPointContainer::fireEvent(DISPID dispId, DISPPARAMS* pDispParams)\r
 {\r
-    _p_events->fireEvent(dispId,lcid, pDispParams);\r
+    _p_events->fireEvent(dispId, pDispParams);\r
 };\r
 \r
 void VLCConnectionPointContainer::firePropChangedEvent(DISPID dispId)\r
index e5b6fa8bbbebf70ffde20411083f2697d7c2d3bd..87d97dc624c85dad56cac282af9cbc806c10879a 100644 (file)
@@ -61,7 +61,7 @@ public:
     STDMETHODIMP Unadvise(DWORD);\r
     STDMETHODIMP EnumConnections(LPENUMCONNECTIONS *);\r
 \r
-    void fireEvent(DISPID dispIdMember, LCID lcid, DISPPARAMS* pDispParams);\r
+    void fireEvent(DISPID dispIdMember, DISPPARAMS* pDispParams);\r
     void firePropChangedEvent(DISPID dispId);\r
 \r
 private:\r
@@ -101,7 +101,7 @@ public:
     STDMETHODIMP EnumConnectionPoints(LPENUMCONNECTIONPOINTS *);\r
     STDMETHODIMP FindConnectionPoint(REFIID, LPCONNECTIONPOINT *);\r
 \r
-    void fireEvent(DISPID, LCID, DISPPARAMS*);\r
+    void fireEvent(DISPID, DISPPARAMS*);\r
     void firePropChangedEvent(DISPID dispId);\r
 \r
 private:\r
index 0b0cef2f743a0ec5f26aa66895daeb55de62ae5c..1d7cd02bfe909fd7dde332c53d6464217f5b29ea 100644 (file)
@@ -743,7 +743,7 @@ void VLCPlugin::fireOnPlayEvent(void)
     if( _b_sendevents )\r
     {\r
         DISPPARAMS dispparamsNoArgs = {NULL, NULL, 0, 0};\r
-        vlcConnectionPointContainer->fireEvent(1, LOCALE_USER_DEFAULT, &dispparamsNoArgs); \r
+        vlcConnectionPointContainer->fireEvent(1, &dispparamsNoArgs); \r
     }\r
 };\r
 \r
@@ -752,7 +752,7 @@ void VLCPlugin::fireOnPauseEvent(void)
     if( _b_sendevents )\r
     {\r
         DISPPARAMS dispparamsNoArgs = {NULL, NULL, 0, 0};\r
-        vlcConnectionPointContainer->fireEvent(2, LOCALE_USER_DEFAULT, &dispparamsNoArgs); \r
+        vlcConnectionPointContainer->fireEvent(2, &dispparamsNoArgs); \r
     }\r
 };\r
 \r
@@ -761,7 +761,7 @@ void VLCPlugin::fireOnStopEvent(void)
     if( _b_sendevents )\r
     {\r
         DISPPARAMS dispparamsNoArgs = {NULL, NULL, 0, 0};\r
-        vlcConnectionPointContainer->fireEvent(3, LOCALE_USER_DEFAULT, &dispparamsNoArgs); \r
+        vlcConnectionPointContainer->fireEvent(3, &dispparamsNoArgs); \r
     }\r
 };\r
 \r
index 986c75c9a4b1b3c0674cee067e7f806c9ca040ec..7c01409f7fc14405039df1100ddf3d07a2545421 100644 (file)
@@ -80,7 +80,7 @@ public:
 \r
     /* custom methods */\r
     HRESULT getTypeLib(ITypeLib **pTL)\r
-        { return LoadRegTypeLib(LIBID_AXVLC, 1, 0, LOCALE_NEUTRAL, pTL); };\r
+        { return LoadRegTypeLib(LIBID_AXVLC, 1, 0, LOCALE_USER_DEFAULT, pTL); };\r
     REFCLSID getClassID(void) { return (REFCLSID)CLSID_VLCPlugin; };\r
     REFIID getDispEventID(void) { return (REFIID)DIID_DVLCEvents; };\r
 \r
@@ -103,7 +103,7 @@ public:
 \r
     int  getVLCObject(void) { return _i_vlc; };\r
 \r
-    // initial properties\r
+    // control properties\r
     void setSourceURL(const char *url) { _psz_src = strdup(url); };\r
     void setAutoStart(BOOL autostart) { _b_autostart = autostart; };\r
     void setLoopMode(BOOL loopmode) { _b_loopmode = loopmode; };\r
@@ -114,12 +114,14 @@ public:
         }\r
     };\r
     void setShowDisplay(BOOL show) { _b_showdisplay = show; };\r
+    BOOL getShowDisplay(void) { return _b_showdisplay; };\r
+    void setSendEvents(BOOL sendevents) { _b_sendevents = sendevents; };\r
 \r
+    // container events\r
     void onPositionChange(LPCRECT lprcPosRect, LPCRECT lprcClipRect);\r
     void onPaint(PAINTSTRUCT &ps, RECT &pr);\r
 \r
-    // plugin events\r
-    void setSendEvents(BOOL sendevents) { _b_sendevents = sendevents; };\r
+    // control events\r
     void fireOnPlayEvent(void);\r
     void fireOnPauseEvent(void);\r
     void fireOnStopEvent(void);\r
index 2df9a519eb2899e19b09843dd2eec3206bbc2081..83e082e20952d040167a4cba281c4499268c0a8f 100644 (file)
@@ -35,7 +35,7 @@ STDMETHODIMP VLCProvideClassInfo::GetClassInfo(ITypeInfo **ppTI)
     HRESULT hr = _p_instance->getTypeLib(&p_typelib);\r
     if( SUCCEEDED(hr) )\r
     {\r
-        hr = p_typelib->GetTypeInfoOfGuid(_p_instance->getDispEventID(), ppTI);\r
+        hr = p_typelib->GetTypeInfoOfGuid(_p_instance->getClassID(), ppTI);\r
         if( FAILED(hr) )\r
         {\r
             *ppTI = NULL;\r
index 897310e7e7bba94a586e87103a44c32e632b48e9..c6fbe92d9c1357656a5a235eb5cee0836e6777b0 100644 (file)
@@ -26,31 +26,31 @@ MRL:
 </OBJECT>
 <SCRIPT LANGUAGE="JScript">
 <!--
-function vlc::OnPlay()
+function vlc::play()
 {
-       alert("Playing");
+       alert("VLC is Playing");
 };
-function vlc::OnPause()
+function vlc::pause()
 {
-       alert("Paused");
+       alert("VLC has Paused");
 };
-function vlc::OnStop()
+function vlc::stop()
 {
-       alert("Stopped");
+       alert("VLC has Stopped");
 };
 //-->
 </SCRIPT>
 </TD></TR>
 <TR><TD>
-<INPUT type=submit value="Play" onClick='document.vlc.play();'>
-<INPUT type=submit value="Pause" onClick='document.vlc.pause();'>
-<INPUT type=submit value="Stop" onClick='document.vlc.stop();'>
-<INPUT type=submit value=" << " onClick='document.vlc.playSlower();'>
-<INPUT type=submit value=" >> " onClick='document.vlc.playFaster();'>
-<INPUT type=submit value="Mute" onClick='document.vlc.toggleMute();'>
-<INPUT type=submit value="Show" onClick='document.vlc.Visible = true;'>
-<INPUT type=submit value="Hide" onClick='document.vlc.Visible = false;'>
-<INPUT type=submit value="Version" onClick='alert(document.vlc.VersionInfo);'>
+<INPUT type=button value="Play" onClick='document.vlc.play();'>
+<INPUT type=button value="Stop" onClick='document.vlc.stop();'>
+<INPUT type=button value="Pause" onClick='document.vlc.pause();'>
+<INPUT type=button value=" << " onClick='document.vlc.playSlower();'>
+<INPUT type=button value=" >> " onClick='document.vlc.playFaster();'>
+<INPUT type=button value="Mute" onClick='document.vlc.toggleMute();'>
+<INPUT type=button value="Show" onClick='document.vlc.Visible = true;'>
+<INPUT type=button value="Hide" onClick='document.vlc.Visible = false;'>
+<INPUT type=button value="Version" onClick='alert(document.vlc.VersionInfo);'>
 </TD></TR>
 </TABLE>
 </BODY>
index df8542a961eaa734f039e51999e98da30c67fe9d..eecba670064722ccb089bbe26b47052cf54b12d8 100644 (file)
@@ -39,7 +39,7 @@ char *CStrFromBSTR(int codePage, BSTR bstr)
         {\r
             char *buffer = (char *)malloc(mblen+1);\r
             ZeroMemory(buffer, mblen+1);\r
-            if( WideCharToMultiByte(CP_ACP, 0, bstr, len, buffer, mblen, NULL, NULL) )\r
+            if( WideCharToMultiByte(codePage, 0, bstr, len, buffer, mblen, NULL, NULL) )\r
                 return buffer;\r
         }\r
     }\r
index fd5008ff4dab55178c9a7d979ff4158d406332f6..21e365333fdae299902ffb2f244ef3aa572cefb4 100644 (file)
@@ -132,7 +132,7 @@ STDMETHODIMP VLCControl::get_Visible(VARIANT_BOOL *isVisible)
     if( _p_instance->isInPlaceActive() )\r
         *isVisible = _p_instance->isVisible() ? VARIANT_TRUE : VARIANT_FALSE;\r
     else\r
-        *isVisible = VARIANT_FALSE;\r
+        *isVisible =  _p_instance->getShowDisplay() ? VARIANT_TRUE : VARIANT_FALSE;\r
 \r
     return NOERROR;\r
 };\r