Bug 548458 - [Win32] Reconcile o.e.s.internal.win32.OS and o.e.s.internal.ole.win32.COM
Summary: [Win32] Reconcile o.e.s.internal.win32.OS and o.e.s.internal.ole.win32.COM
Status: NEW
Alias: None
Product: Platform
Classification: Eclipse Project
Component: SWT (show other bugs)
Version: 4.13   Edit
Hardware: PC Windows All
: P3 enhancement (vote)
Target Milestone: ---   Edit
Assignee: Nikita Nemkin CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on: 548457
Blocks:
  Show dependency tree
 
Reported: 2019-06-20 03:11 EDT by Nikita Nemkin CLA
Modified: 2019-07-01 07:14 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nikita Nemkin CLA 2019-06-20 03:11:53 EDT
Widgets code has traditionally avoided dependency on o.e.s.internal.ole.win32. But many Win32 APIs are COM-based, so bits and pieces of COM had been moved over to OS, including things like OleInitialize, CoCreateInstance (it's own copy) and most of the VtableCalls.

OTOH, certain fundamental classes like GUID and IUnknown are defined in ole.win32 and widgets code works hard to avoid them e.g. by declaring copies of functions with byte[] instead of GUID and using direct vtable calls.

I think we should allow COM access to widgets and move some COM stuff back from the OS. OR we should merge COM into OS, because the split is not relevant anymore. Basically, the following entities need a single, canonical place to be:

* GUID constants
* VtblCalls
* Interface wrappers (IUnknown descendants)
* OLE functions (ole2.h, shobjidl.h etc)
* MSAA/IA2 functions and constants

As a first step, I've removed all direct vtable calls, see Bug 548457.

Seeking feedback of win32 maintainers on this issue.
Comment 1 Eclipse Genie CLA 2019-06-26 05:37:34 EDT
New Gerrit change created: https://git.eclipse.org/r/144914