Share via


Macro's voor tekenreeksconversie

Opmerking

De ATL (Active Template Library) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Deze macro's bieden functies voor het converteren van tekenreeksen.

Macro's voor ATL- en MFC-tekenreeksconversie

De hier besproken macro's voor tekenreeksconversie zijn geldig voor zowel ATL als MFC. Zie TN059 voor meer informatie over MFC-tekenreeksconversie : MFC MBCS/Unicode-conversiemacro's en MFC-macro's en globals gebruiken.

Macro's VOOR DEVMODE- en TEXTMETRIC-tekenreeksconversie

Met deze macro's maakt u een kopie van een DEVMODE - of TEXTMETRIC-structuur en converteert u de tekenreeksen in de nieuwe structuur naar een nieuw tekenreekstype. De macro's wijzen geheugen toe aan de stack voor de nieuwe structuur en retourneren een aanwijzer naar de nieuwe structuur.

MACRONAME( address_of_structure )

Opmerkingen

Voorbeeld:

DEVMODEW* lpw = DEVMODEA2W(lpa);

En:

TEXTMETRICW* lptmw = TEXTMETRICA2W(lptma);

In de macronamen bevindt het tekenreekstype in de bronstructuur zich aan de linkerkant (bijvoorbeeld A) en bevindt het tekenreekstype in de doelstructuur zich aan de rechterkant (bijvoorbeeld W). A staat voor LPSTR, OLE staat voor LPOLESTR, T staat voor LPTSTR en W staat voor LPWSTR.

DEVMODEA2W dus een DEVMODE structuur met LPSTR-tekenreeksen kopieert naar een DEVMODE structuur met LPWSTR-tekenreeksen, TEXTMETRICOLE2T een TEXTMETRIC structuur met LPOLESTR-tekenreeksen kopieert naar een TEXTMETRIC structuur met LPTSTR-tekenreeksen, enzovoort.

De twee tekenreeksen die in de DEVMODE structuur zijn geconverteerd, zijn de apparaatnaam (dmDeviceName) en de formuliernaam (dmFormName). De DEVMODE macro's voor tekenreeksconversie werken ook de structuurgrootte (dmSize) bij.

De vier tekenreeksen die in de TEXTMETRIC structuur zijn geconverteerd, zijn het eerste teken (tmFirstChar), het laatste teken (tmLastChar), het standaardteken (tmDefaultChar) en het eindeteken (tmBreakChar).

Het gedrag van de DEVMODE macro's en TEXTMETRIC tekenreeksconversie is afhankelijk van de compilerrichtlijn, indien van toepassing. Als de bron- en doeltypen hetzelfde zijn, vindt er geen conversie plaats. Compilerrichtlijnen wijzigen T en OLE als volgt:

Compilerrichtlijn van kracht T wordt OLE wordt
none A W
_UNICODE W W
OLE2ANSI A A
_UNICODE en OLE2ANSI W A

De volgende tabel bevat de DEVMODE macro's en TEXTMETRIC tekenreeksconversiemacro's.

DEVMODE Macro TEXTMETRIC Macro
DEVMODEA2W TEXTMETRICA2W
DEVMODEOLE2T TEXTMETRICOLE2T
DEVMODET2OLE TEXTMETRICT2OLE
DEVMODEW2A TEXTMETRICW2A

Zie ook

Macro's