Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

87 lines
3.7 KiB

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