; len: Integer; TabCount: Integer; TabPositions: PInteger; TabOrigin: Integer): Integer; stdcall; Var s: AnsiString; begin try if Len<0 then Len:=strlen(text); if Len>0 then begin SetLength(s,len); FillChar(s[1],len+1,0); Move(text^,s[1],len); if @ConvertTextFunction<>nil then s:=ConvertTextFunction(s); if @OldTabbedTextOutA<>nil then
Result:=OldTabbedTextOutA(hdc,x,y,PAnsiChar(s),length(s),TabCount,TabPositions,TabOrigin)
else Result:=0; end else Result:=OldTabbedTextOutA(hdc,x,y,text,0,TabCount,TabPositions,TabOrigin);
except Result:=0; end; end;
function NewTabbedTextOutW(hdc: HDC; x,y: Integer; text: PWideChar; len: Integer; TabCount: Integer; TabPositions: PInteger; TabOrigin: Integer): Integer; stdcall; Var s: WideString; begin try if Len<0 then Len:=strlenW(text); if Len>0 then begin SetLength(s,len); FillChar(s[1],len*2+2,0); Move(text^,s[1],len*2); if @ConvertTextFunction<>nil then s:=ConvertTextFunction(s); if @OldTabbedTextOutW<>nil then Result:=OldTabbedTextOutW(hdc,x,y,PWideChar(s),length(s),TabCount,TabPositions,TabOrigin)
else Result:=0; end else Result:=OldTabbedTextOutW(hdc,x,y,text,0,TabCount,TabPositions,TabOrigin);
except Result:=0; end; end;
function NewPolyTextOutA(hdc: HDC; pptxt: PPOLYTEXTA; count: Integer): BOOL; stdcall; Var s: String; i: Integer; ppnew: PPOLYTEXTA; begin ppnew:=nil; try Result:=False; if Count<0 then exit; if Count=0 then begin Result:=True; exit; end; GetMem(ppnew,count*sizeof(TPOLYTEXTA)); For i:=1 to count do begin ppnew^:=pptxt^; if ppnew^.n<0 then ppnew^.n:=strlen(ppnew^.PAnsiChar); if ppnew^.n>0 then begin SetLength(s,ppnew^.n); FillChar(s[1],ppnew^.n+1,0); Move(ppnew^.PAnsiChar,s[1],ppnew^.n); if @ConvertTextFunction<>nil then s:=ConvertTextFunction(s); ppnew^.PAnsiChar:=PAnsiChar(s); ppnew^.n:=length(s); if @OldPolyTextOutA<>nil then Result:=OldPolyTextOutA(hdc,ppnew,1); end; Inc(pptxt); end; except Result:=False; end; if ppnew<>nil then FreeMem(ppnew); end;
function NewPolyTextOutW(hdc: HDC; pptxt: PPOLYTEXTW; count: Integer): BOOL; stdcall; begin Result:=OldPolyTextOutW(hdc,pptxt,count); end;
function NewGetTextExtentExPointA(hdc: HDC; text: PAnsiChar; len: Integer; maxExtent: Integer; Fit: PInteger; Dx: PInteger; Size: Pointer): BOOL; stdcall; Var s: AnsiString; begin try if Len<0 then Len:=strlen(text); if Len>0 then begin SetLength(s,len); FillChar(s[1],len+1,0); Move(text^,s[1],len); if @ConvertTextFunction<>nil then s:=ConvertTextFunction(s); if @OldGetTextExtentExPointA<>nil then
Result:=OldGetTextExtentExPointA(hdc,PAnsiChar(s),length(s),maxExtent,Fit,Dx,Size)
else Result:=False; end else Result:=OldGetTextExtentExPointA(hdc,text,0,maxExtent,Fit,Dx,Size); except Result:=False; end; end;
Function NewGetTextExtentExPointW(hdc: HDC; text: PWideChar; len: Integer; maxExtent: Integer; Fit: PInteger; Dx: PInteger; Size: Pointer): BOOL; stdcall; Var s: WideString; begin try if Len<0 then Len:=strlenW(text); if Len>0 then begin SetLength(s,len); FillChar(s[1],len*2+2,0); Move(text^,s[1],len); if @ConvertTextFunction<>nil then s:=ConvertTextFunction(s); if @OldGetTextExtentExPointW<>nil then
Result:=OldGetTextExtentExPointW(hdc,PWideChar(s),length(s),maxExtent,Fit,Dx,Size)
else Result:=False; end else Result:=OldGetTextExtentExPointW(hdc,text,0,maxExtent,Fit,Dx,Size); except Result:=False; end; end;
function NewGetTextExtentPoint32A(hdc: HDC; text: PAnsiChar; len: Integer; Size: Pointer): BOOL; stdcall; Var s: AnsiString; begin try if Len<0 then Len:=strlen(text); if Len>0 then begin SetLength(s,len); FillChar(s[1],len+1,0); Move(text^,s[1],len); if @ConvertTextFunction<>nil then s:=ConvertTextFunction(s); if @OldGetTextExtentPoint32A<>nil then
Result:=OldGetTextExtentPoint32A(hdc,PAnsiChar(s),length(s),Size) else Result:=False; end else Result:=OldGetTextExtentPoint32A(hdc,text,0,Size); except Result:=False; end; end;
function NewGetTextExtentPoint32W(hdc: HDC; text: PWideChar; len: Integer; Size: Pointer): BOOL; stdcall; Var s: WideString; begin try if Len<0 then Len:=strlenW(text); if Len>0 then begin SetLength(s,len); FillChar(s[1],len*2+2,0); Move(text^,s[1],len); if @ConvertTextFunction<>nil then s:=ConvertTextFunction(s); if @OldGetTextExtentPoint32W<>nil then
Result:=OldGetTextExtentPoint32W(hdc,PWideChar(s),length(s),Size) else Result:=False; end else Result:=OldGetTextExtentPoint32W(hdc,text,0,Size); except Result:=False; end; end; function NewGetTextExtentPointA(hdc: HDC; text: PAnsiChar; len: Integer; Size: Pointer): BOOL; stdcall; Var s: AnsiString; begin try if Len<0 then Len:=strlen(text); if Len>0 then begin SetLength(s,len); FillChar(s[1],len+1,0); Move(text^,s[1],len); if @ConvertTextFunction<>nil then s:=ConvertTextFunction(s); if @OldGetTextExtentPointA<>nil then Result:=OldGetTextExtentPointA(hdc,PAnsiChar(s),length(s),Size) else Result:=False; end else Result:=OldGetTextExtentPointA(hdc,text,0,Size); except Result:=False; end; end;
function NewGetTextExtentPointW(hdc: HDC; text: PWideChar; len: Integer; Size: Pointer): BOOL; stdcall; Var s: WideString; begin try if Len<0 then Len:=strlenW(text); if Len>0 then begin SetLength(s,len); FillChar(s[1],len*2+2,0); Move(text^,s[1],len); if @ConvertTextFunction<>nil then s:=ConvertTextFunction(s); if @OldGetTextExtentPoint32W<>nil then Result:=OldGetTextExtentPointW(hdc,PWideChar(s),length(s),Size) else Result:=False; end else Result:=OldGetTextExtentPointW(hdc,text,0,Size); except Result:=False; end; end;
上一页 [1] [2] [3] [4] [5] [6] 下一页 |