Issue 104476 - Request for standardized QuickStarter control interface.
Summary: Request for standardized QuickStarter control interface.
Status: UNCONFIRMED
Alias: None
Product: General
Classification: Code
Component: scripting (show other issues)
Version: OOO310m11
Hardware: Unknown All
: P3 Trivial (vote)
Target Milestone: ---
Assignee: AOO issues mailing list
QA Contact:
URL:
Keywords: needhelp
Depends on:
Blocks:
 
Reported: 2009-08-24 21:58 UTC by jan_bcf
Modified: 2014-02-04 12:48 UTC (History)
3 users (show)

See Also:
Issue Type: ENHANCEMENT
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description jan_bcf 2009-08-24 21:58:53 UTC
When creating an installer for an extension I was trying to find a way to close
the Quickstarter on Windows before installing or upgrading the extension. The
reason I need to completely close OpenOffice before installing the extension is
that an extension upgrade may be blocked if the extension is loaded by
OpenOffice - it is using a DLL and the Quickstarter may keep that extension DLL
loaded.

You can follow the discussion at

http://api.openoffice.org/servlets/ReadMsg?list=dev&msgNo=21638

where the apparently unpublished interface "com.sun.star.office.Quickstart" is
being used. Is there a chance that this interface may become standardized across
platforms and published so there is a clean way of making the Quickstarter exit ?

Currently I have regressed to a good-old PostMessage() routine after diving into
the source at
http://svn.services.openoffice.org/opengrok/xref/DEV300_m55/sfx2/source/appl/shutdowniconw32.cxx
and found a working Windows-only,probably-OOo-version-specific solution that way
- code follows.

Delphi code to close the Quickstarter on Windows:

const
  QUICKSTART_CLASSNAME = 'SO Listener Class';
//  QUICKSTART_WINDOWNAME = 'SO Listener Window';
// The window name of the listener window is not set to anything
// in the OpenOffice Quickstarter that I have running according to Microsoft Spy++.
// I run OOO310m11.
  QUICKSTART_WINDOWNAME = nil;  // Window name is not set in my OOo 3.1.
  SHUTDOWN_QUICKSTART_MESSAGE = 'SO KillTray';

procedure TMainForm.PostExitMessageButtonClick(Sender: TObject);
var
  QckStWinHandle: THandle;
  ShutdownMsg: DWORD;
begin
  QckStWinHandle := FindWindow(QUICKSTART_CLASSNAME, QUICKSTART_WINDOWNAME);
  if QckStWinHandle = 0 then
    raise Exception.Create('QuickStarter is not running.');

  ShutdownMsg := RegisterWindowMessage( SHUTDOWN_QUICKSTART_MESSAGE );
  PostMessage(QckStWinHandle, ShutdownMsg, 0, 0);
end;
Comment 1 ab 2009-08-25 15:02:01 UTC
ab->cd: as discussed
Comment 2 Ariel Constenla-Haile 2009-08-25 20:24:05 UTC
.