Correct spec entry for MsiLoadString*.
[wine] / DEVELOPERS-HINTS
index 3e0ca59..9a9bbd8 100644 (file)
@@ -54,12 +54,15 @@ DLLs (under dlls/):
        glut32/                 - OpenGL Utility Toolkit
        iccvid/                 - Radius Cinepak Video Decoder
        icmp/                   - ICMP protocol (networking)
+       ifsmgr.vxd/             - IFSMGR VxD implementation
        imagehlp/               - PE (Portable Executable) Image Helper lib
        imm32/                  - Input Method Manager
        iphlpapi/               - IP Helper API
        kernel/                 - The Windows kernel
        lzexpand/               - Lempel-Ziv compression/decompression
        mapi32/                 - Mail interface
+       mmdevldr.vxd/           - MMDEVLDR VxD implementation
+       monodebg.vxd/           - MONODEBG VxD implementation
        mpr/                    - Multi-Protocol Router (networking)
        msacm/                  - Audio Compression Manager (multimedia)
        msacm/imaadp32/         - IMA ADPCM Audio Codec
@@ -98,6 +101,7 @@ DLLs (under dlls/):
        rasapi32/               - Remote Access Server interface
        richedit/               - Rich text editing control
        rpcrt4/                 - Remote Procedure Call runtime
+       rsabase/                - RSA encryption
        serialui/               - Serial port property pages
        setupapi/               - Setup interface
        shdocvw/                - Shell document object and control
@@ -114,7 +118,13 @@ DLLs (under dlls/):
        urlmon/                 - URL Moniker allows binding to a URL (like KIO/gnome-vfs)
        user/                   - Window management, standard controls, etc.
        uxtheme/                - Theme library
+       vdhcp.vxd/              - VDHCP VxD implementation
        version/                - File installation library
+       vmm.vxd/                - VMM VxD implementation
+       vnb.vxd/                - VNB VxD implementation
+       vnetbios.vxd/           - VNETBIOS VxD implementation
+       vtdapi.vxd/             - VTDAPI VxD implementation
+       vwin32.vxd/             - VWIN32 VxD implementation
        win32s/                 - 32-bit function access for 16-bit systems
        winaspi/                - 16 bit Advanced SCSI Peripheral Interface
        wined3d/                - Wine internal Direct3D helper
@@ -180,6 +190,8 @@ Winelib programs (under programs/):
 Support programs, libraries, etc:
 ---------------------------------
 
+       dlls/dxerr8/            - DirectX 8 error import lib
+       dlls/dxerr9/            - DirectX 9 error import lib
        dlls/dxguid/            - DirectX UUID import lib
        dlls/uuid/              - Windows-compatible UUID import lib
        documentation/          - some documentation
@@ -214,7 +226,6 @@ respective dlls.
        files/                  - KERNEL file I/O
        misc/                   - KERNEL registry 
 
-       graphics/               - GDI graphics drivers
        objects/                - GDI logical objects
 
        controls/               - USER built-in widgets
@@ -267,6 +278,11 @@ into a stub:
    *  
    * Draw many Bezier curves.
    *
+   * PARAMS
+   *   hdc   [I] Device context to draw to
+   *   p     [I] Array of POINT structs
+   *   count [I] Number of points in p
+   *
    * RETURNS
    *   Success: Non-zero.
    *   Failure: FALSE. Use GetLastError() to find the error cause.
@@ -274,19 +290,16 @@ into a stub:
    * BUGS
    *   Unimplemented
    */
-   BOOL WINAPI PolyBezierTo(HDC hdc,     /* [In] Device context to draw to */
-                            LPCVOID p,   /* [In] Array of POINT structs */
-                            DWORD count  /* [In] Number of points in p */
-   ) 
+   BOOL WINAPI PolyBezierTo(HDC hdc, LPCVOID p, DWORD count) 
    {
-      /* tell the user they've got a substandard implementation */
-      FIXME(gdi, ":(%x,%p,%d): stub\n", hdc, p, count);
-
-      /* some programs may be able to compensate, 
-       * if they know what happened 
-       */
-      SetLastError(ERROR_CALL_NOT_IMPLEMENTED);  
-      return FALSE;    /* error value */
+       /* tell the user they've got a substandard implementation */
+       FIXME(gdi, ":(%x,%p,%d): stub\n", hdc, p, count);
+
+       /* some programs may be able to compensate, 
+        * if they know what happened 
+        */
+       SetLastError(ERROR_CALL_NOT_IMPLEMENTED);  
+       return FALSE;    /* error value */
    }
 
 4. Implement and test the rest of the function.
@@ -430,16 +443,6 @@ struct { BYTE x; WORD y; };
 
 For alignment on a 2-byte boundary, there is a "pshpack2.h", etc.
 
-The use of the WINE_PACKED attribute is obsolete. Please remove these 
-in favour of the above solution. 
-Using WINE_PACKED, you would declare the above structure like this:
-
-struct { BYTE x; WORD y WINE_PACKED; };
-
-You had to do this every time a structure member is not aligned
-correctly under Windows (i.e. a WORD not on an even address, or a
-DWORD on a address that was not a multiple of 4).
-
 
 NAMING CONVENTIONS FOR API FUNCTIONS AND TYPES
 ==============================================
@@ -450,8 +453,7 @@ functions and types. If the Windows API uses the name 'xxx', the Wine
 code must use:
 
  - 'xxx16' for the Win16 version,
- - 'xxx'   for the Win32 version when no ASCII/Unicode strings are
-   involved,
+ - 'xxx'   for the Win32 version when no strings are involved,
  - 'xxxA'  for the Win32 version with ASCII strings,
  - 'xxxW'  for the Win32 version with Unicode strings.
 
@@ -488,30 +490,6 @@ and this will use the correct declaration depending on the definition
 of the UNICODE symbol.
 
 
-NAMING CONVENTIONS FOR NON-API FUNCTIONS AND TYPES
-==================================================
-
-Functions and data which are internal to your code (or at least shouldn't be
-visible to any Winelib or Windows program) should be preceded by
-an identifier to the module:
-
-Examples:
-
-ENUMPRINTERS_GetDWORDFromRegistryA()    (in dlls/winspool/info.c)
-IAVIFile_fnRelease()                    (in dlls/avifil32/avifile.c)
-X11DRV_CreateDC()                       (in graphics/x11drv/init.c)
-
-if you need prototypes for these, there are a few possibilities:
-- within same source file only:
-  put the prototypes at the top of your file and mark them as prototypes.
-- within the same module:
-  create a header file within the subdirectory where that module resides,
-  e.g.  graphics/ddraw_private.h
-- from a totally different module, or for use in winelib:
-  you should never do that. Only exported APIs can be called across
-  module boundaries.
-
-
 DEBUG MESSAGES
 ==============