summaryrefslogtreecommitdiff
path: root/extensions/source/ole
AgeCommit message (Collapse)Author
2019-01-21SAL_INFO also for parameter names that are not foundTor Lillqvist
Change-Id: I1b3fd47a23002673cb81811ebfd0034ca546d837
2018-12-12"functionor" to "function or", and added missing quotehimajin100000
Change-Id: I647abff8c149b84aa7196e81d0820b23d8b93dd0 Reviewed-on: https://gerrit.libreoffice.org/64890 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-11-11Removed repeated semicolonAndrea Gelmini
Change-Id: Iefc820a4c4bb87fe113f97b085d8e89f30ff2db5 Reviewed-on: https://gerrit.libreoffice.org/63261 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Jenkins
2018-11-10tdf#120703 PVS: V547 Expression is always true/falseMike Kaganski
Change-Id: I0b3c407331bfa1fa0c5003250d327d4f26de3643 Reviewed-on: https://gerrit.libreoffice.org/63235 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2018-08-20Simplify containers iterations, tdf#96099 follow-upArkadiy Illarionov
Use range-based loop or replace with std::any_of, std::find and std::find_if where applicable. Change-Id: I2f80788c49d56094c29b102eb96a7a7c079567c6 Reviewed-on: https://gerrit.libreoffice.org/59143 Tested-by: Jenkins Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-08-04Fix typosAndrea Gelmini
Change-Id: Iaaf12d276fb890e5ac860e79c5dc196d7e8680d8 Reviewed-on: https://gerrit.libreoffice.org/58435 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Jenkins
2018-08-01Add missing sal/log.hxx headersGabor Kelemen
rtl/string.hxx and rtl/ustring.hxx both unnecessarily #include <sal/log.hxx> (and don't make use of it themselves), but many other files happen to depend on it. This is a continuation of commit 6ff2d84ade299cb3d14d4110e4cf1a4b8070c030 to be able to remove those unneeded includes. This commit adds missing headers to every file found by: grep -FwL sal/log.hxx $(git grep -Elw 'SAL_INFO|SAL_INFO_IF|SAL_WARN|SAL_WARN_IF|SAL_DETAIL_LOG_STREAM|SAL_WHERE|SAL_STREAM|SAL_DEBUG') to directories from dbaccess to extensions Change-Id: I4d15aa35e11664ef78c836ffc2937c7e0bb6ea59 Reviewed-on: https://gerrit.libreoffice.org/58165 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2018-07-23Fix typosAndrea Gelmini
Change-Id: Iebc31a53404da41f35eed7338662365d7efbd7a2 Reviewed-on: https://gerrit.libreoffice.org/57810 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2018-06-26Fix typoAndrea Gelmini
Change-Id: I47cf4db535562e4db505b44981d86d40171e7630 Reviewed-on: https://gerrit.libreoffice.org/56424 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2018-06-26tdf#96099 Remove some trivial container iterator typedefsArkadiy Illarionov
Change-Id: Ifec98748d55ff6aca64c425c50c2cf2650f61591 Reviewed-on: https://gerrit.libreoffice.org/56422 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-06-25Add a FIXMETor Lillqvist
Change-Id: I3771d6f4703bbd1f012389f5699928464875290f
2018-06-12Support named arguments in InterfaceOleWrapper::Invoke()Tor Lillqvist
Convert a DISPPARAMS with named arguments into one with just positional ones. If there are gaps, use markers for them (VARIANTs with VT_ERROR:DISP_E_PARAMNOTFOUND). Those are then passed on as empty UNO Anys. Change-Id: Iad1197ba2559567a9c0eca4524e76389c2048fec Reviewed-on: https://gerrit.libreoffice.org/55646 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tor Lillqvist <tml@collabora.com>
2018-06-11Show also args in the SAL_INFO in InterfaceOleWrapper::Invoke()Tor Lillqvist
Change-Id: I8d1d3273fcafe1ce750e66e55712eac607722717 Reviewed-on: https://gerrit.libreoffice.org/55643 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tor Lillqvist <tml@collabora.com>
2018-06-11Fix typoAndrea Gelmini
Change-Id: I22eb441313c2f06ecbbbe86a8b2c4dc602861cff Reviewed-on: https://gerrit.libreoffice.org/55611 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Jenkins <ci@libreoffice.org>
2018-06-10Start of work on supporting named argumentsTor Lillqvist
In InterfaceOleWrapper::GetIDsOfNames(), look up also the parameter names, if present (if cNames > 1, rgszNames entries after the first). Return S_OK only if *all* the names were found, i.e. both the first (method or property) name, *and* all the parameter names. Change-Id: Ie04bc0558a7e2044ef527fc18f99230c71985a22 Reviewed-on: https://gerrit.libreoffice.org/55549 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tor Lillqvist <tml@collabora.com>
2018-06-08Fix glitch in SAL_INFO loggingTor Lillqvist
Change-Id: I421d3980c50706f927a0611e48c33a43267dd01b Reviewed-on: https://gerrit.libreoffice.org/55477 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tor Lillqvist <tml@collabora.com>
2018-06-08Log all the names being looked up in GetIDsOfNames()Tor Lillqvist
Change-Id: Ia116021ecc9f20c82622a4bc8ee40e7a9a1508fa Reviewed-on: https://gerrit.libreoffice.org/55479 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tor Lillqvist <tml@collabora.com>
2018-06-07Fix off-by-one error: The XCollection loop index is one-basedTor Lillqvist
We must compare the index against the number of entries with '>' and not '>='. Change-Id: I2de9e53b2a0d923d4136ee5e093baa955c8301da Reviewed-on: https://gerrit.libreoffice.org/55405 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tor Lillqvist <tml@collabora.com>
2018-06-07Improve logging in CXEnumVariantTor Lillqvist
Change-Id: Ia0c3f9f1e95980b14415a030fc40268629ae06f3 Reviewed-on: https://gerrit.libreoffice.org/55399 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tor Lillqvist <tml@collabora.com>
2018-06-06tdf#118026: Use ooo::vba::XCollection instead of css::container::XEnumerationTor Lillqvist
An object returned by XCollection::Item() is of the right "VBA" kind that we want. One returned by XEnumeration::nextElement() is not. Change-Id: I26132a7d0f2638a61f2711b941386a889fabea72 Reviewed-on: https://gerrit.libreoffice.org/55392 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tor Lillqvist <tml@collabora.com>
2018-06-04Various clang-cl/loplugin errors in extensions/source/ole/unoobjw.cxxStephan Bergmann
-Werror,-Wnon-virtual-dtor: made various dtors virtual -Werror,-Winconsistent-missing-override in END_COM_MAP: silenced the same way as in other places across the code base loplugin:unreffun in BEGIN_COM_MAP and END_COM_MAP: silence with -Wunused-function various -Werror in atlbase.h and atlcom.h: silenced the same way as in e.g. embedserv/source/inc/stdafx.h -Werror,-Wshadow -Werror,-Wunused-function loplugin:casttovoid loplugin:cstylecast loplugin:nullptr loplugin:salbool loplugin:subtlezeroinit Change-Id: Ifefdc930a1d3ecf5366523dea509bfaca1f4e001 Reviewed-on: https://gerrit.libreoffice.org/55186 Reviewed-by: Tor Lillqvist <tml@collabora.com> Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-06-01Improve handling of _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNINGStephan Bergmann
_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING turned into a global -D..., same as existing _SILENCE_CXX17_OLD_ALLOCATOR_MEMBERS_DEPRECATION_WARNING. Change-Id: Ifefdc930a1d3ecf5366523dea509bfaca1f4e002 Reviewed-on: https://gerrit.libreoffice.org/55188 Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Jenkins <ci@libreoffice.org>
2018-06-01Fix typosAndrea Gelmini
Change-Id: Icc6fd609d3e57277822c4de76bd3baf4b1900840 Reviewed-on: https://gerrit.libreoffice.org/55176 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2018-06-01loplugin:unoany (clang-cl)Stephan Bergmann
Change-Id: I2a27c41ed2045cca8b8efb5f9d07f3015c67f8a1 Reviewed-on: https://gerrit.libreoffice.org/55169 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-06-01Fix typosAndrea Gelmini
Change-Id: I17d6a674fbe7b5eebd21cad5a9491c129679e5c1 Reviewed-on: https://gerrit.libreoffice.org/55117 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2018-05-31Log the call to CoRegisterClassObject()Tor Lillqvist
Change-Id: Idfca38ec2c931572b6978440862c7bfca8d536e6
2018-05-31Revert "Simplify: Use AutomationInvokedZone::isActive()"Tor Lillqvist
Can't have the URE library 'stoc' depend on the non-URE library 'comphelper'. This reverts commit 3c041720304ec77202741b5d5c8df9b93bc70a70.
2018-05-31Add a SAL_INFOTor Lillqvist
Change-Id: Ic197a9573968fb252cb52cc5089f9140d5375d3a
2018-05-31Simplify: Use AutomationInvokedZone::isActive()Tor Lillqvist
Don't need the mbFromOLE boolean flag and the special "FromOLE" parameter passed to the InvocationService:: createInstanceWithArguments(). Change-Id: I05e10a78955d87cb7c37e198c60c3ddcfdbc4275
2018-05-31Need to enter the AutomationInvokedZone here, tooTor Lillqvist
Change-Id: I2723146f2c549c630dfa0e5da330af228cb305a0
2018-05-31Enter AutomationInvokedZone appropriatelyTor Lillqvist
Change-Id: Ic76fc43fc521a6fd6642e22b71c311370788d4aa
2018-05-31Make convertDispparamsArgs() handle mismatch in number of parameters sanelyTor Lillqvist
Parameters come in in reverse order in pdispparams. There might be less parameters than expected. In that case, assume the missing ones are "optional" (but can't be marked as such in UNO IDL), and fill in the rest with empty Anys. There might also be more parameters than expected. In that case, assume the oovbaapi UNO IDL hasn't kept up with added optional parameters in MSO, and just ignore the extra ones, as long as they are empty. An example: incoming parameters: <12, 13, "foo/bar.tem"> Expected paramters: (string filename, int something, int somethingElse, Any whatever, Any whateverElse) Here the existing incoming parameters are placed in reverse order in the first three outgoing parameters, and the rest of the outgoing paramters are passed as empty Anys. Another example: incoming parameters: <EMPTY, TRUE> Expected parameters: (bool flag) Here the TRUE is passed as the sole outgoing parameter, and the incoming EMPTY is ignored. Still an example: incoming parameters: <"foo.doc", TRUE> Expected parameters: (bool flag) This throws an error as the incoming non-empty extra parameter presumably indicates something important, but there is no corresponding outgoing parameter to pass it in. Change-Id: Ib04f9701099ecb899e792d99ff86588022b3bbf6
2018-05-31Implement EnumConnections, and fix handling of mismatched parameter numberTor Lillqvist
If we have too few parameters, fill with empty ones, as before. If we have more paramters than the called method expects, but the extra ones are empty anyway, ignore them. Do all of this in convertDispparamsArgs(). This improves interoperability with typical Automation clients. Change-Id: I47376993dc10b401e4c349e19b2bbe4be9f8f444
2018-05-31Make SAL_INFO logging style more usefulTor Lillqvist
Make it easier to search for a specific class and function in the output by outputting the 'this' pointer first, not between the class and function name. Change-Id: Ia6e087e3a4be9e701c418aedb9b6af5fd4f6e828
2018-05-31Initial steps to make also Calc usable from Automation clientsTor Lillqvist
Largely parallel to what we do for Writer. Yes, there is a fair amount of duplicated code now for the outgoing ("sink") stuff in sw and sc, that should be factored out (to vbahelper, probably). Change-Id: I8df4a81c3b9043e8d6b0b206e3c04660205987c7
2018-05-31Use correct index for incoming Arguments sequenceTor Lillqvist
Change-Id: I1c706a2139cb2596969c6c1d166d3f9fe9f91d39
2018-05-31Initialise mxMSF in all casesTor Lillqvist
Change-Id: Ib7fcdbe934b66971995574226f982a6865faab1b
2018-05-31Add informative commentTor Lillqvist
Change-Id: I428c2bbaa273d893fa5a3cc42bb7f3d060f375ad
2018-05-31First attempt at passing arguments, also in and inout, to Automation callbacksTor Lillqvist
Change-Id: Iff629243888153250b655a5e942ced024e3338a7
2018-05-31A few SAL_INFO tweaksTor Lillqvist
Change-Id: I4a9c6341891bc80d8ab7648ed972d57739aa4f4a
2018-05-31First attempt at implementing CXTypeInfo::GetFuncDesc() and ReleaseFuncDesc()Tor Lillqvist
The returned information for the methods is fairly bogus, though. Not sure now (a few months after I wrote the code) whether this added functionality was actually needed, or whether I just added it for potential future need, and with the intent that it needs to be improved significantly then later if actually needed. Change-Id: Ifb132f494cdd7172b4b1d05cc26e2370ea595f41
2018-05-31Prepare to handle out (and inout) parameters to event callbacksTor Lillqvist
Change-Id: I47054c1df40d1058618b0fbd3fdb82fa93ca8836
2018-05-31Add one more #define _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING 1Tor Lillqvist
Change-Id: I228ae626532b3ae6f632701e71d3da182c496612
2018-05-31Remove leftover hardcoded check for SwVbaApplicationTor Lillqvist
Instead, be generic, check whether the objects implements ooo::vba::XConnectable. That's what we do in the IID_IConnectionPointContainer case, too. Change-Id: Ib499aa011775f79a2accaef64e19738bdb7ed143 Reviewed-on: https://gerrit.libreoffice.org/55109 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tor Lillqvist <tml@collabora.com>
2018-05-31We want just one SwVbaGlobals and SwVbaApplication for all Automation clientsTor Lillqvist
I think. Anyway, if it turns out we do want one per client, easy to revert this. (And it isn't very common to have several Automation clients connected at the same time anyway, surely.) There will still additionally be one SwVbaGlobals (and SwVbaApplication) per open document with a StarBasic interpreter, though. I think. Change-Id: I5f7dbfd65b5decb152c1192298bc85dcf6027d64 Reviewed-on: https://gerrit.libreoffice.org/55094 Reviewed-by: Tor Lillqvist <tml@collabora.com> Tested-by: Tor Lillqvist <tml@collabora.com>
2018-05-30Work in progress related to invoking events in Automation clientsTor Lillqvist
XConnectable interfaces need a second IID, for the interface "itself", not the coclass. (I am sure there is some catchy short term for that, I just can't find it right now.) Allow several simultaneous sinks for a SwVbaApplication. Not sure in what case such would be needed, but you never know about 3rd-party client code, and it's trivial to handle anyway, so why not. Lots of FIXMEs still. There is likely also a lot of leaks. But at least an event handler in a simple VBScript script does get invoked. Note that the changed and added code in extensions/source/ole is totally unaware of what outgoing ("event") interfaces Writer or Calc implements, it is all handled generically through the UNO interfaces I added recently. One particular thing that needs doing is to actually make Writer (and Calc) raise this kind of events when necessary. The current code to invoke events handlers in StarBasic (including StarBasic code running in "VBA" compaibility) is very much tied to having StarBasic running (not surprisingly), which of course is not at all the case when it is an Automation client that is manipulating a Writer or Calc instance and wants events. There is demonstration-only code in SwVbaApplication::Documents() to raise the "Quit" event. (I would have put that in the SwVbaApplication destructor but that doesn't seem to get called.) That should of course go away once we invoke other relevant events in appropriate places. And the "Quit" event needs to be invoked when the application is quitting. The whole callback mechanism with IConnectionPoint etc is still partly a mystery to me. It is entirely possible that even if this now works for a simple VBScript client, it won't work for (for instance) a VB6 client that might exercise the APIs of the COM interfaces we provide in a different way. Add XSinkCaller, for something that perhaps calls one or several XSinks. Change-Id: Ica03344010e374542f4aceff5ec032c78579f937 Reviewed-on: https://gerrit.libreoffice.org/55093 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tor Lillqvist <tml@collabora.com>
2018-05-30Implement InterfaceOleWrapper::GetTypeInfoCount()Tor Lillqvist
It is just supposed to return 1, after all. And we do try to implement the GetTypeInfo(). (Sure, the testing I am doing that turned out to require GetTypeInfo() to work then immediately after this runs into much harder problems to solve, but that is another issue.) Change-Id: If7e0707d7b404d6a46b24e642c2146b3bfff03f0 Reviewed-on: https://gerrit.libreoffice.org/55070 Reviewed-by: Tor Lillqvist <tml@collabora.com> Tested-by: Tor Lillqvist <tml@collabora.com>
2018-05-30Fix typos in SAL_WARNs: The class is called CXTypeInfo, not CxTypeInfoTor Lillqvist
Change-Id: Iab17340f57cf8b116d2f058661dabd3a95fb61d2
2018-05-30Handle <codecvt> deprecation issue with VS2017Tor Lillqvist
As VS2017 so eloquently puts it, "Warning STL4017: std::wbuffer_convert, std::wstring_convert, and the <codecvt> header (containing std::codecvt_mode, std::codecvt_utf8, std::codecvt_utf16, and std::codecvt_utf8_utf16) are deprecated in C++17. (The std::codecvt class template is NOT deprecated.) The C++ Standard doesn't provide equivalent non-deprecated fu tml_ nctionality; consider using MultiByteToWideChar() and WideCharToMultiByte() from <Windows.h> instead. You can define _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING or _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS to acknowledge that you have received this warning." So VS2017 actually recommends using platform-specific API instead of standard C++ API that is or will be deprecated but has no standard replacement. Insane. Note that it is not enough to define that _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING just right where you are including <codecvt> because "for all of the warning suppression macros, you must define them before any C++ Standard Library header has been included (both <vector> etc. and <cstdlib> etc.)" as mentioned on https://blogs.msdn.microsoft.com/vcblog/2017/12/08/c17-feature-removals-and-deprecations/ So define it in the single file that includes windowsdebugoutput.hxx for now. Change-Id: Iecd9702502ce3b33013d6799c618d6b98d803c3e
2018-05-30We might need to handle form controls as properties for OLE clients after allTor Lillqvist
Start a bit of work on that. Change-Id: I7775f9598a81d64e9716996027b01f7f8e29745b Reviewed-on: https://gerrit.libreoffice.org/55043 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tor Lillqvist <tml@collabora.com>