88 lines
3.7 KiB
Plaintext
88 lines
3.7 KiB
Plaintext
|
preraid.txt
|
||
|
|
||
|
This file contains general notes for the ole2w32.dll project. These items
|
||
|
should all be entered into our raid database once that is established.
|
||
|
|
||
|
|
||
|
1. alexgo -- api.cpp contains a lot of seemingly redundant api's, such
|
||
|
as OleNoteObjectVisible and OleSetContainedObject, which do nothing
|
||
|
but call CoLockObjectExternal. We ought to think about replacing these
|
||
|
with #define's.
|
||
|
|
||
|
2. alexgo -- there are *16* api's in api.cpp which all do basically the
|
||
|
same thing, reading and writing private OLE info into a special stream
|
||
|
in a storage. There is a lot of duplicate code between these functions;
|
||
|
with a little bit of thought, we can clean this up significantly.
|
||
|
|
||
|
Some of these (such as GetDocumentBitStg) don't even seem to be used
|
||
|
by anyone.
|
||
|
|
||
|
3. alexgo -- fix writing ANSI strings to streams to write an ansi version
|
||
|
to the 16bit named private stream (OLE_STREAM, COMPOBJ_STREAM) and
|
||
|
write a duplicate unicode string to a 32bit private stream. Be sure
|
||
|
to maintain consistent state across the two stream/strings
|
||
|
|
||
|
4. alexgo -- fix autoconversion of links. We need to return a new
|
||
|
error code OLE_E_CLASSDIFFMUSTRECREATELINK to handle the case of
|
||
|
custom links and modify the sample code to deal with this appropriately.
|
||
|
See the file autolink.txt for a more thorough discussion of this issue.
|
||
|
|
||
|
5. alexgo -- fix the drawing of icons and labels. The code (icon.cpp)
|
||
|
currently assumes English language with an ANSI character set.
|
||
|
|
||
|
6. DONE: alexgo -- the OleReg functions (in olereg.cpp and elsewhere) need to
|
||
|
be updated to the new 32bit standard. The following note from ShannonC
|
||
|
gives more details.
|
||
|
|
||
|
|
||
|
From: Shannon Chan
|
||
|
To: Object Oriented Interfaces,Methods&API's
|
||
|
Subject: FINAL: Registry conflicts between 16 bit OLE2 and 32 bit OLE2
|
||
|
Date: Friday, December 03, 1993 11:19AM
|
||
|
|
||
|
Last month, I sent out a proposal on how to resolve the registry
|
||
|
conflicts between 16 bit OLE 2 and 32
|
||
|
bit OLE 2. There were no objections. This message describes the
|
||
|
final resolution of this issue.
|
||
|
|
||
|
Conflicting registry entries currently prevent the installation of 16
|
||
|
bit OLE 2 and 32 bit OLE 2 applications on the same machine. The 16
|
||
|
bit applications require 16 bit DLLs. The 32 bit applications
|
||
|
require 32 bit DLLs. The problem is that the same registry entries
|
||
|
are used to register both 16 bit DLLs and 32 bit DLLs. The solution
|
||
|
to this problem is to define new registry entries for 32 bit OLE 2.
|
||
|
|
||
|
16 bit OLE 2 will continue to use the existing registry keys:
|
||
|
InProcServer - Registers a 16 bit in-process server DLL.
|
||
|
InProcHandler - Registers a 16 bit handler DLL.
|
||
|
ProxyStubClsid - Maps an IID to a CLSID in a 16 bit proxy DLL.
|
||
|
|
||
|
32 bit OLE 2 will use new registry keys:
|
||
|
InProcServer32 - Registers a 32 bit in-process server DLL.
|
||
|
InProcHandler32 - Registers a 32 bit handler DLL.
|
||
|
ProxyStubClsid32 - Maps an IID to a CLSID in a 32 bit proxy DLL.
|
||
|
|
||
|
Some people asked why we need ProxyStubClsid32. We need
|
||
|
ProxyStubClsid32 because the IID to CLSID mapping may be different
|
||
|
for 16 bit interfaces and 32 bit interfaces. The IID to CLSID
|
||
|
mapping depends on how we package the interface proxies into a set of
|
||
|
proxy DLLs.
|
||
|
|
||
|
ShannonC
|
||
|
|
||
|
|
||
|
7. alexgo -- need to replace all memory allocations with the debug versions
|
||
|
for resource tracking. See alext's mail.
|
||
|
|
||
|
8. DONE (partially) alexgo -- need to put in call tracing stuff (LEDebugOut).
|
||
|
|
||
|
9. alexgo -- optimization. The defhandler makes many many calls to IsRunning.
|
||
|
We may be able to make IsRunning faster or perhaps analyze our code paths
|
||
|
and reduce the number of calls to it.
|
||
|
|
||
|
10. alexgo -- the OleConvert api's in the ole1 directory need to be
|
||
|
implemented (currently, they are just stubbed).
|
||
|
|
||
|
11. alexgo -- the test harness should ensure that structures (such as
|
||
|
FORMATETC) are packed ala MS C style /Zp8 packing.
|