wine/ include/usp10.h dlls/usp10/usp10.spec dl ...

Alexandre Julliard julliard at wine.codeweavers.com
Tue Nov 15 06:02:16 CST 2005


ChangeSet ID:	21271
CVSROOT:	/opt/cvs-commit
Module name:	wine
Changes by:	julliard at winehq.org	2005/11/15 06:02:16

Modified files:
	include        : usp10.h 
	dlls/usp10     : usp10.spec usp10.c 

Log message:
	Raphael Junqueira <fenix at club-internet.fr>
	Add stubs around ScriptStringAnalyse to avoid PAF crash.

Patch: http://cvs.winehq.org/patch.py?id=21271

Old revision  New revision  Changes     Path
 1.2           1.3           +51 -0      wine/include/usp10.h
 1.3           1.4           +3 -3       wine/dlls/usp10/usp10.spec
 1.3           1.4           +42 -0      wine/dlls/usp10/usp10.c

Index: wine/include/usp10.h
diff -u -p wine/include/usp10.h:1.2 wine/include/usp10.h:1.3
--- wine/include/usp10.h:1.2	15 Nov 2005 12: 2:16 -0000
+++ wine/include/usp10.h	15 Nov 2005 12: 2:16 -0000
@@ -19,6 +19,34 @@
 #ifndef __USP10_H
 #define __USP10_H
 
+/** ScriptStringAnalyse */
+#define  SSA_PASSWORD         0x00000001
+#define  SSA_TAB              0x00000002
+#define  SSA_CLIP             0x00000004
+#define  SSA_FIT              0x00000008
+#define  SSA_DZWG             0x00000010
+#define  SSA_FALLBACK         0x00000020
+#define  SSA_BREAK            0x00000040
+#define  SSA_GLYPHS           0x00000080
+#define  SSA_RTL              0x00000100
+#define  SSA_GCP              0x00000200
+#define  SSA_HOTKEY           0x00000400
+#define  SSA_METAFILE         0x00000800
+#define  SSA_LINK             0x00001000
+#define  SSA_HIDEHOTKEY       0x00002000
+#define  SSA_HOTKEYONLY       0x00002400
+#define  SSA_FULLMEASURE      0x04000000
+#define  SSA_LPKANSIFALLBACK  0x08000000
+#define  SSA_PIDX             0x10000000
+#define  SSA_LAYOUTRTL        0x20000000
+#define  SSA_DONTGLYPH        0x40000000 
+#define  SSA_NOKASHIDA        0x80000000 
+
+/** StringIsComplex */
+#define  SIC_COMPLEX     1
+#define  SIC_ASCIIDIGIT  2
+#define  SIC_NEUTRAL     4
+
 typedef struct tag_SCRIPT_CONTROL {
   DWORD uDefaultLanguage	:16;
   DWORD fContextDigits		:1;
@@ -96,7 +124,15 @@ typedef struct tag_SCRIPT_FONTPROPERTIES
   int iKashidaWidth;
 } SCRIPT_FONTPROPERTIES;
 
+typedef struct tag_SCRIPT_TABDEF {
+  int cTabStops;
+  int iScale;
+  int *pTabStops;
+  int iTabOrigin;
+} SCRIPT_TABDEF;
+
 typedef void *SCRIPT_CACHE;
+typedef void *SCRIPT_STRING_ANALYSIS; 
 
 /* Function Declairations */
 
@@ -108,5 +144,20 @@ HRESULT WINAPI ScriptItemize(const WCHAR
                              const SCRIPT_CONTROL *psControl, const SCRIPT_STATE *psState, 
                              SCRIPT_ITEM *pItems, int *pcItems);
 HRESULT WINAPI ScriptGetFontProperties(HDC hdc, SCRIPT_CACHE *psc, SCRIPT_FONTPROPERTIES *sfp);
+HRESULT WINAPI ScriptStringAnalyse(HDC hdc, 
+				   const void *pString, 
+				   int cString, 
+				   int cGlyphs,
+				   int iCharset,
+				   DWORD dwFlags,
+				   int iReqWidth,
+				   SCRIPT_CONTROL *psControl,
+				   SCRIPT_STATE *psState,
+				   const int *piDx,
+				   SCRIPT_TABDEF *pTabdef,
+				   const BYTE *pbInClass,
+				   SCRIPT_STRING_ANALYSIS *pssa);
+HRESULT WINAPI ScriptStringFree(SCRIPT_STRING_ANALYSIS *pssa);
+HRESULT WINAPI ScriptIsComplex(const WCHAR* pwcInChars, int cInChars, DWORD dwFlags);
 
 #endif /* __USP10_H */
Index: wine/dlls/usp10/usp10.spec
diff -u -p wine/dlls/usp10/usp10.spec:1.3 wine/dlls/usp10/usp10.spec:1.4
--- wine/dlls/usp10/usp10.spec:1.3	15 Nov 2005 12: 2:16 -0000
+++ wine/dlls/usp10/usp10.spec	15 Nov 2005 12: 2:16 -0000
@@ -10,16 +10,16 @@
 @ stub ScriptGetGlyphABCWidth
 @ stub ScriptGetLogicalWidths
 @ stdcall ScriptGetProperties(ptr long)
-@ stub ScriptIsComplex
+@ stdcall ScriptIsComplex(wstr long long)
 @ stdcall ScriptItemize(wstr long long ptr ptr ptr ptr)
 @ stub ScriptJustify
 @ stub ScriptLayout
 @ stub ScriptPlace
 @ stdcall ScriptRecordDigitSubstitution(ptr ptr)
 @ stub ScriptShape
-@ stub ScriptStringAnalyse
+@ stdcall ScriptStringAnalyse(ptr ptr long long long long long ptr ptr ptr ptr ptr ptr)
 @ stub ScriptStringCPtoX
-@ stub ScriptStringFree
+@ stdcall ScriptStringFree(ptr)
 @ stub ScriptStringGetLogicalWidths
 @ stub ScriptStringGetOrder
 @ stub ScriptStringOut
Index: wine/dlls/usp10/usp10.c
diff -u -p wine/dlls/usp10/usp10.c:1.3 wine/dlls/usp10/usp10.c:1.4
--- wine/dlls/usp10/usp10.c:1.3	15 Nov 2005 12: 2:16 -0000
+++ wine/dlls/usp10/usp10.c	15 Nov 2005 12: 2:16 -0000
@@ -31,6 +31,11 @@
 
 #include "wine/debug.h"
 
+/**
+ * some documentation here:
+ *   http://www.microsoft.com/typography/developers/uniscribe/uniscribe.htm
+ */
+
 WINE_DEFAULT_DEBUG_CHANNEL(uniscribe);
 
 BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpv)
@@ -87,3 +92,40 @@ HRESULT WINAPI ScriptItemize(const WCHAR
           psControl, psState, pItems, pcItems);
     return E_INVALIDARG;
 }
+
+HRESULT WINAPI ScriptStringAnalyse(HDC hdc, 
+				   const void *pString, 
+				   int cString, 
+				   int cGlyphs,
+				   int iCharset,
+				   DWORD dwFlags,
+				   int iReqWidth,
+				   SCRIPT_CONTROL *psControl,
+				   SCRIPT_STATE *psState,
+				   const int *piDx,
+				   SCRIPT_TABDEF *pTabdef,
+				   const BYTE *pbInClass,
+				   SCRIPT_STRING_ANALYSIS *pssa)
+{
+  FIXME("(%p,%p,%d,%d,%d,0x%lx,%d,%p,%p,%p,%p,%p,%p): stub\n",
+	hdc, pString, cString, cGlyphs, iCharset, dwFlags,
+	iReqWidth, psControl, psState, piDx, pTabdef, pbInClass, pssa);
+  if (1 > cString || NULL == pString) {
+    return E_INVALIDARG;
+  }
+  if ((dwFlags & SSA_GLYPHS) && NULL == hdc) {
+    return E_INVALIDARG;
+  }
+
+  return E_NOTIMPL;
+}
+
+HRESULT WINAPI ScriptStringFree(SCRIPT_STRING_ANALYSIS *pssa) {
+  FIXME("(%p): stub\n",pssa);
+  return S_OK;
+}
+
+HRESULT WINAPI ScriptIsComplex(const WCHAR* pwcInChars, int cInChars, DWORD dwFlags) {
+  FIXME("(%s,%d,0x%lx): stub\n",  debugstr_w(pwcInChars), cInChars, dwFlags);
+   return E_NOTIMPL;
+}



More information about the wine-cvs mailing list