ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

stubsa.c
Go to the documentation of this file.
00001 /*
00002  * dll/win32/gdi32/misc/stubsa.c
00003  *
00004  * GDI32.DLL Stubs for ANSI functions
00005  *
00006  * When you implement one of these functions,
00007  * remove its stub from this file.
00008  *
00009  */
00010 
00011 #include "precomp.h"
00012 #include <debug.h>
00013 
00014 
00015 /*
00016  * @unimplemented
00017  */
00018 BOOL
00019 WINAPI
00020 PolyTextOutA( HDC hdc, const POLYTEXTA *pptxt, INT cStrings )
00021 {
00022     for (; cStrings>0; cStrings--, pptxt++)
00023         if (!ExtTextOutA( hdc, pptxt->x, pptxt->y, pptxt->uiFlags, &pptxt->rcl, pptxt->lpstr, pptxt->n, pptxt->pdx ))
00024             return FALSE;
00025     return TRUE;
00026 }
00027 
00028 /*
00029  * @unimplemented
00030  */
00031 BOOL
00032 WINAPI
00033 GetLogColorSpaceA(
00034     HCOLORSPACE     a0,
00035     LPLOGCOLORSPACEA    a1,
00036     DWORD           a2
00037 )
00038 {
00039     UNIMPLEMENTED;
00040     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
00041     return FALSE;
00042 }
00043 
00044 
00045 /*
00046  * @unimplemented
00047  */
00048 BOOL
00049 WINAPI
00050 GetICMProfileA(
00051     HDC     hdc,
00052     LPDWORD pBufSize,
00053     LPSTR       pszFilename
00054 )
00055 {
00056     WCHAR filenameW[MAX_PATH];
00057     DWORD buflen = MAX_PATH;
00058     BOOL ret = FALSE;
00059 
00060     if (!hdc || !pBufSize || !pszFilename) return FALSE;
00061 
00062     if (GetICMProfileW(hdc, &buflen, filenameW))
00063     {
00064         ULONG len = WideCharToMultiByte(CP_ACP, 0, filenameW, -1, NULL, 0, NULL, NULL);
00065         if (*pBufSize >= len)
00066         {
00067             WideCharToMultiByte(CP_ACP, 0, filenameW, -1, pszFilename, *pBufSize, NULL, NULL);
00068             ret = TRUE;
00069         }
00070         else SetLastError(ERROR_INSUFFICIENT_BUFFER);
00071         *pBufSize = len;
00072     }
00073 
00074     return ret;
00075 }
00076 
00077 
00078 /*
00079  * @unimplemented
00080  */
00081 BOOL
00082 WINAPI
00083 SetICMProfileA(
00084     HDC a0,
00085     LPSTR   a1
00086 )
00087 {
00088     UNIMPLEMENTED;
00089     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
00090     return FALSE;
00091 }
00092 
00093 
00094 /*
00095  * @unimplemented
00096  */
00097 int
00098 WINAPI
00099 EnumICMProfilesA(
00100     HDC     a0,
00101     ICMENUMPROCA    a1,
00102     LPARAM      a2
00103 )
00104 {
00105     /*
00106      * FIXME - call NtGdiEnumICMProfiles with NULL for lpstrBuffer
00107      * to find out how big a buffer we need. Then allocate that buffer
00108      * and call NtGdiEnumICMProfiles again to have the buffer filled.
00109      *
00110      * Finally, step through the buffer ( MULTI-SZ recommended for format ),
00111      * and convert each string to ANSI, calling the user's callback function
00112      * until we run out of strings or the user returns FALSE
00113      */
00114 
00115     UNIMPLEMENTED;
00116     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
00117     return 0;
00118 }
00119 
00120 
00121 /*
00122  * @unimplemented
00123  */
00124 BOOL
00125 WINAPI
00126 UpdateICMRegKeyA(
00127     DWORD   a0,
00128     LPSTR   a1,
00129     LPSTR   a2,
00130     UINT    a3
00131 )
00132 {
00133     UNIMPLEMENTED;
00134     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
00135     return FALSE;
00136 }
00137 
00138 /*
00139  * @implemented
00140  */
00141 UINT
00142 WINAPI
00143 GetStringBitmapA(HDC hdc,
00144                  LPSTR psz,
00145                  BOOL DoCall,
00146                  UINT cj,
00147                  BYTE *lpSB)
00148 {
00149 
00150     NTSTATUS Status;
00151     PWSTR pwsz;
00152     UINT retValue = 0;
00153 
00154     if (DoCall)
00155     {
00156         Status = HEAP_strdupA2W ( &pwsz, psz );
00157         if ( !NT_SUCCESS (Status) )
00158         {
00159             SetLastError (RtlNtStatusToDosError(Status));
00160         }
00161         else
00162         {
00163             retValue = NtGdiGetStringBitmapW(hdc, pwsz, 1, lpSB, cj);
00164             HEAP_free ( pwsz );
00165         }
00166     }
00167 
00168     return retValue;
00169 
00170 }
00171 
00172 
00173 /* EOF */

Generated on Sat May 26 2012 04:37:10 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.