Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
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 |