Contents for Windows CSV Specification Help

  Using Help

  Microsoft Support Services

  Introduction

  Programming with Windows CSV

  Windows CSV Reference

  Extensions for the Windows Environment


Contents for Windows CSV Specification Help

  Using Help

  Microsoft Support Services

  Introduction

  Windows CSV Overview

  Microsoft Windows Graphical Environment and Windows-Specific Extensions

  Programming with Windows CSV

  Windows CSV Reference

  Extensions for the Windows Environment


Contents for Windows CSV Specification Help

  Using Help

  Microsoft Support Services

  Introduction

  Programming with Windows CSV

  Windows CSV Library Installation Checking

  Byte Ordering and Pointers

  Windows CSV Reference

  Extensions for the Windows Environment


Contents for Windows CSV Specification Help

  Using Help

  Microsoft Support Services

  Introduction

  Programming with Windows CSV

  Windows CSV Reference

  CONVERT

  GET_CP_CONVERT_TABLE

  TRANSFER_MS_DATA

  Extensions for the Windows Environment


Contents for Windows CSV Specification Help

  Using Help

  Microsoft Support Services

  Introduction

  Programming with Windows CSV

  Windows CSV Reference

  Extensions for the Windows Environment

  Overview

  GetCsvReturnCode( )

  WinCSVCleanup( )

  WinAsyncCSV( )

  WinCSVStartup( )


Using Help

You can find information in Help by choosing a Help topic or by using the Search feature. To return to the Help contents screen after you read the following instructions, click Back or press B.

For complete instructions on how to use Help, press F1 while Help is active.

To expand a topic list

Click a button showing a closed file folder  [image].

Or press TAB until the intended heading is highlighted, and press ENTER.

To collapse a topic list

Click a button showing an open file folder  [image].

Or press TAB until the intended heading is highlighted, and press ENTER.

To choose a Help topic

Click an underlined topic or a topic with a button  [image].

Or press TAB until the intended topic is highlighted, and then press ENTER.

To return to the previous topic

Click Back or press B.

To use the Search feature

Click Search or press S.

To close Help

From the File menu for Help, choose Exit (ALT, F, X).


Windows CSV Overview

Windows CSV defines a standard and consistent API for the 16- and 32-bit versions of the Microsoft® Windows™ graphical environment. It encompasses a set of Windows-specific extensions designed to allow the programmer to take advantage of the message-driven nature of the Windows graphical environment.

This API has been designed and specified to provide a standard to which application developers can program and network software vendors can conform. These API details constitute documentation for application software developers and a specification for network software vendors.

Network software that conforms to this Windows CSV specification will be considered "Windows CSV Compliant." To be Windows CSV Compliant, a vendor must implement 100% of this Windows CSV specification. Suppliers of such interfaces shall be referred to as "Windows CSV Suppliers."

Applications that are capable of exploiting any Windows CSV implementation will be considered as having a "Windows CSV Interface" and will be referred to as "Windows CSV Applications."

While this is one of the Windows SNA APIs to be standardized for the Windows environment, it is beyond the scope of this document to deal with other SNA APIs.


Microsoft Windows Graphical Environment and Windows-Specific Extensions

This API has been designed for all implementations and versions of the Windows environment from and including version 3.0. It thus provides for Windows CSV implementations and Windows CSV applications in both 16- and 32-bit operating environments.

Windows CSV makes provisions for multithreaded Windows-based processes. A process contains one or more threads of execution. In the Win16 nonmultithreaded world, a task corresponds to a process with a single thread. All references to threads in this document refer to actual "threads" in multithreaded Windows environments. In nonmultithreaded environments (such as version 3.0), use of the term thread refers to a Windows process.

The extensions to the Windows environment included in Windows CSV are provided for maximum programming compatibility between Windows version 3.x and Windows NT™ and optimal application performance in both environments.


Windows CSV Library Installation Checking

To detect the presence of any Windows CSV implementations on a system, an application that has been linked with the Windows CSV import library can attempt to call the WinCSVStartup() routine. If you want your application to be a little more sophisticated, have it examine the $PATH environment variable to search for instances of Windows CSV API implementations (WINCSV.DLL). For each instance, it can issue a LoadLibrary() call and use the WinCSVStartup() routine to discover implementation-specific data.

This version of the Windows CSV API specification does not attempt to address explicitly the issue of multiple library/multiple concurrent Windows CSV implementations. Nothing in the specification should be interpreted as restricting multiple Windows CSV DLLs from being present and from being used concurrently by one or more Windows CSV applications.


Byte Ordering and Pointers

Byte Ordering

The Intel byte ordering is like that of the DEC VAX, and so differs from the Internet and 68000-type processor byte ordering. Take care in your programming to ensure the correct orientation.

Pointers

All pointers used by applications with Windows CSV should be FAR.


CONVERT

Translates an ASCII character string to EBCDIC or an EBCDIC character string to ASCII. The string to be converted is called the source string. The converted string is called the target string.

Syntax

opcode	unsigned short int
opext	unsigned char
reserv2	reserved unsigned char
primary_rc	reserved unsigned short int
secondary_rc	unsigned long int
direction	unsigned char
char_set	unsigned char
len	unsigned short int
source	unsigned char far *
target	unsigned char far *
Parameter	Description
opcode	Supplied parameter; SV_CONVERT.
direction	Supplied parameter; specifies the direction of the conversion. To convert from ASCII to EBCDIC, use SV_ASCII_TO_EBCDIC. To convert from EBCDIC to ASCII, use SV_EBCDIC_TO_ASCII.
char_set	Supplied parameter; specifies the character set to use in converting the source string. Allowed values include SV_A (type A character set), SV_AE (type AE character set), and SV_G (type G character set).
len	Supplied parameter; specifies the number of characters to be converted. This length plus the offset from the beginning of the source or target buffer must not exceed the segment boundary.
source	Supplied parameter; specifies the address of the buffer containing the character string to be converted.
target	Supplied parameter; specifies the address of the buffer to contain the converted character string. This buffer can overlap or coincide with the buffer pointed to by the source parameter. In this case, the converted data string overwrites the source data string.
Return Codes

SV_OK

Primary return code; the verb executed successfully.

SV_PARAMETER_CHECK

Primary return code; the verb did not execute because of a parameter error:

SV_CONVERSION_ERROR

Secondary return code; one or more characters in the source string were not found in the conversion table. These characters were converted to nulls (X'00'). The verb still executed.

SV_INVALID_CHARACTER_SET

Secondary return code; the char_set parameter contained an invalid value.

SV_INVALID_DATA_SEGMENT

Secondary return code; the data buffer containing the source or target string did not fit in one segment, or the target segment was not a read/write segment. This applies only to the Windows NT and Windows version 3.x operating systems.

SV_INVALID_DIRECTION

Secondary return code; the direction contained an invalid value.

SV_INVALID_FIRST_CHARACTER

Secondary return code; the first character of a type A source string was invalid.

SV_TABLE_ERROR

Secondary return code; one of the following occurred:

•	The file containing the user-written type G conversion table was not specified by the environment variable CSVTBLG.

•	The table was not in the correct format.

•	The file specified by the CSVTBLG variable was not found.

SV_COMM_SUBSYSTEM_NOT_LOADED

Primary return code; a required component could not be loaded or has terminated while processing the verb. Thus, communication could not take place. Contact the system administrator for corrective action.

SV_INVALID_VERB

Primary return code; the opcode parameter did not match the operation code of any verb. No verb executed.

SV_INVALID_VERB_SEGMENT

Primary return code; the VCB extended beyond the end of the data segment.

SV_UNEXPECTED_DOS_ERROR

Primary return code; one of the following conditions has occurred:

•	The Windows NT, Windows version 3.x or MS-DOS system encountered an error while processing the verb. The operating system return code was returned through the secondary return code. If the problem persists, contact the system administrator for corrective action.

•	A CSV was issued from a message loop that was invoked by another application issuing a Windows SendMessage function call, rather than the more common Windows PostMessage function call. Verb processing cannot take place.

•	A CSV was issued when SendMessage invoked your application. You can determine whether your application has been invoked with SendMessage by using the InSendMessage Windows API function call.

Remarks

The type A character set consists of:

•	Uppercase letters.

•	Numerals 0 through 9.

•	Special characters $, #, @, and space.

This character set is supported by a system-supplied type A conversion table.

The first character of the source string must be an uppercase letter or the special character $, #, or @. Spaces are allowed only in trailing positions. Lowercase ASCII letters are translated to uppercase EBCDIC letters when the direction is ASCII to EBCDIC.

The type AE character set consists of:

•	Uppercase letters.

•	Lowercase letters.

•	Numerals 0 through 9.

•	Special characters $, #, @, period, and space.

This character set is supported by a system-supplied type AE conversion table.

The first character of the source string cannot be a space; spaces are allowed only in trailing positions.

The data for a type G conversion table must be an ASCII file 32 lines long. Each line must consist of 32 hexadecimal digits, representing 16 characters, and be terminated by a carriage return and line feed. The first 16 lines (256 characters) specify the EBCDIC characters to which ASCII characters are converted; the remaining 16 lines specify the ASCII characters to which EBCDIC characters are converted.

The hexadecimal digits A through F can be either uppercase or lowercase. However, you may want to make these digits uppercase to ensure compatibility with IBM Extended Services for OS/2 version 1.0 (IBM ES for OS/2 version 1.0).

Note  You can use GET_CP_CONVERT_TABLE to build a type G, user-written conversion table in memory, and then store the table in a file. For more information, see GET_CP_CONVERT_TABLE.


GET_CP_CONVERT_TABLE

Creates and returns a 256-byte conversion table to translate character strings from a source code page to a target code page.

Syntax

opcode	unsigned short int
opext	unsigned char
reserv2	reserved unsigned char
primary_rc	reserved unsigned short int
secondary_rc	unsigned long int
source_cp	unsigned short int
target_cp	unsigned short int
conv_tbl_addr	unsigned char far *
char_not_fnd	unsigned char
substitute_char	unsigned char
Parameter	Description
opcode	Supplied parameter; SV_GET_CP_CONVERT_TABLE.
source_cp	Supplied parameter; specifies the source code page (from which characters are converted). The allowed code pages (decimal values) are as follows: • ASCII 437, 850, 860, 863, 865 • EBCDIC 037, 273, 277, 278, 280, 284, 285, 297, 500 This value is user-defined; it can range from 65280 through 65534. ASCII code pages are sometimes referred to as PC code pages; EBCDIC code pages are sometimes referred to as host code pages.
target_cp	Supplied parameter; specifies the target code page (to which characters are converted). For allowed code pages, see the preceding definition for source_cp.
conv_tbl_addr	Supplied parameter; specifies the address of the buffer to contain the 256-byte conversion table. The buffer must be in a writable segment and long enough to contain the table.
char_not_fnd	Supplied parameter; specifies the action to take if a character in the source code page does not exist in the target code page: • Use SV_ROUND_TRIP to store a unique value in the conversion table for each source code-page character. • Use SV_SUBSTITUTE to store a substitute character (specified by substitute_char) in the conversion table.
substitute_char	Supplied parameter; specifies the character to store in the conversion table when a character from the source code page has no equivalent in the target code page.
Return Codes

SV_OK

Primary return code; the verb executed successfully.

SV_PARAMETER_CHECK

Primary return code; the verb did not execute because of a parameter error:

SV_INVALID_CHAR_NOT_FOUND

Secondary return code; the char_not_fnd parameter contained an invalid value.

SV_INVALID_DATA_SEGMENT

Secondary return code; the 256-byte area specified for the conversion table extended beyond the segment boundary, or the segment was not writable.

SV_INVALID_SOURCE_CODE_PAGE

Secondary return code; the code page specified by source_cp is not supported.

SV_INVALID_TARGET_CODE_PAGE

Secondary return code; the code page specified by target_cp is not supported.

SV_COMM_SUBSYSTEM_NOT_LOADED

Primary return code; a required component could not be loaded or has terminated while processing the verb. Thus, communication could not take place. Contact the system administrator for corrective action.

SV_INVALID_VERB

Primary return code; the opcode parameter did not match the operation code of any verb. No verb executed.

SV_INVALID_VERB_SEGMENT

Primary return code; the VCB extended beyond the end of the data segment.

SV_UNEXPECTED_DOS_ERROR

Primary return code; one of the following conditions has occurred:

•	The Windows NT, Windows version 3.x or MS-DOS system encountered an error while processing the verb. The operating system return code was returned through the secondary return code. If the problem persists, contact the system administrator for corrective action.

•	A CSV was issued from a message loop that was invoked by another application issuing a Windows SendMessage function call, rather than the more common Windows PostMessage function call. Verb processing cannot take place.

•	A CSV was issued when SendMessage invoked your application. You can determine whether your application has been invoked with SendMessage by using the InSendMessage Windows API function call.

Remarks

The SV_ROUND_TRIP value for char_not_fnd is useful only if you build a second conversion table to convert between the same two code pages in the reverse direction. If you specify the SV_ROUND_TRIP value in building both conversion tables, any character translated from one code page to the other and then back will be unchanged.

When using the SV_SUBSTITUTE value for char_not_fnd, converting the translated character string back to the original code page will not necessarily recreate the original character string.

Use substitute_char only if char_not_fnd is set to SV_SUBSTITUTE.

The value stored in the conversion table is the ASCII value associated with the character. If the table is used for conversion from ASCII to EBCDIC, the character that appears in the converted string is the character associated with the numeric EBCDIC value rather than ASCII.

For example, if you supply the underscore (_) character (ASCII value F6) while creating an ASCII to EBCDIC conversion table, the character that appears in the converted strings will be 6, the character associated with the value F6 in EBCDIC. To use the _ character as the substitute character in an ASCII to EBCDIC conversion table, you should supply the value E1 (the value associated with the _ character in EBCDIC) rather than the actual character.

A code page is a table that associates specific ASCII or EBCDIC values with specific characters. If a character from the source code page does not exist in the target code page, the translated (target) string differs from the original (source) string.


TRANSFER_MS_DATA

Builds an SNA request unit containing NMVT data. The verb can send the NMVT data to NetView for centralized problem diagnosis and resolution. The data is logged in the local audit file.

Syntax

opcode	unsigned short int
data_type	unsigned char
reserv2	unsigned char
primary_rc	reserved unsigned short int
secondary_rc	unsigned long int
options	unsigned char
reserv3	unsigned char
origntr_id	reserved unsigned char [8]
dlen	unsigned short int
dptr	unsigned char far *
Parameter	Description
opcode	Supplied parameter; SV_TRANSFER_MS_DATA.
data_type	Supplied parameter; specifies the type of data provided by this verb: • Use SV_NMVT to generate an NMVT (including the NS header, the major network management vector, and subvectors). • Use SV_ALERT_SUBVECTORS to generate an RU containing data for an alert, in the appropriate format, without the NS header or major NMVT vector. • Use SV_PDSTATS_SUBVECTORS to generate an RU containing data for problem determination statistics, in the appropriate format, without the NS header or major NMVT vector. • Use SV_USER_DEFINED to generate user-defined data; this data is recorded in the error log but cannot be sent on the systems services control point-physical unit (SSCP-PU) session on the connection configured for diagnostics.
options	Supplied parameter; specify the desired options by turning individual bits on or off. (Bits 1, 2, and 3 are ignored if data_type is set to SV_USER_DEFINED.) See the "Remarks" section.
origntr_id	Supplied parameter; specifies the name of the component issuing TRANSFER_MS_DATA. This parameter is optional. Set it to X'00' if you want the system to ignore it.
dlen	Supplied parameter; specifies the length of data to be supplied to this verb. The total length of the data (user-supplied data and any added headers or subvectors) must fit into one RU. The maximum RU length is 512 bytes.
dptr	Supplied parameter; specifies the address of the data to be sent.
Return Codes

SV_OK

Primary return code; the verb executed successfully.

SV_PARAMETER_CHECK

Primary return code; the verb did not execute because of a parameter error:

SV_DATA_EXCEEDS_RU_SIZE

Secondary return code; the data to be sent was too long. The length of the user-supplied data plus headers and added subvectors must fit in a single RU that is not more than 512 bytes long.

SV_INVALID_DATA_SEGMENT

Secondary return code; the buffer pointed to by dptr was not a readable segment or extended beyond the segment boundary.

SV_INVALID_DATA_TYPE

Secondary return code; the data_type parameter contained an invalid value.

SV_STATE_CHECK

Primary return code; the verb did not execute because it was issued in an invalid state:

SV_SSCP_PU_SESSION_NOT_ACTIVE

Secondary return code; the NMVT was not sent; either the SSCP-PU session was not active, the node configured to receive diagnostic information was not active, or no network management connection was configured.

SV_COMM_SUBSYSTEM_NOT_LOADED

Primary return code; a required component could not be loaded or has terminated while processing the verb. Thus, communication could not take place. Contact the system administrator for corrective action.

SV_INVALID_VERB

Primary return code; the opcode parameter did not match the operation code of any verb. No verb executed.

SV_INVALID_VERB_SEGMENT

Primary return code; the VCB extended beyond the end of the data segment.

SV_UNEXPECTED_DOS_ERROR

Primary return code; one of the following conditions has occurred:

•	The Windows NT, Windows version 3.x or MS-DOS system encountered an error while processing the verb. The operating system return code was returned through the secondary return code. If the problem persists, contact the system administrator for corrective action.

•	A CSV was issued from a message loop that was invoked by another application issuing a Windows SendMessage function call, rather than the more common Windows PostMessage function call. Verb processing cannot take place.

•	A CSV was issued when SendMessage invoked your application. You can determine whether your application has been invoked with SendMessage by using the InSendMessage Windows API function call.

SV_CANCELLED

Primary return code; this code is returned for an asynchronous verb when it has been shut down by a WinCSVCleanup call.

SV_SERVER_RESOURCE_NOT_FOUND

Primary return code; no communication server was found that could provide the requested function.

SV_SERVER_RESOURCE_LOST

Primary return code; the communications server that was providing the function was lost because of a connection failure:

SV_SERVER_COMM_FAILURE

Secondary return code; the connection to the server was lost because of physical path problems; for example, the server may have been powered off.

SV_THREAD_BLOCKING

Primary return code; this verb exceeds the maximum number of simultaneous synchronous verbs allowed.

Remarks

To specify options:

Bit	Description
0	TIME_STAMP_SUBVECTOR. Adds date/time subvector to data. Allowed values include SV_ADD and SV_NO_ADD.
1	PRODUCT_SET_ID_SUBVECTOR. Adds Product_Set_ID subvector to data. This allows network management services to identify the sender of an alert. Allowed values include SV_ADD and SV_NO_ADD.
2	SSCP_PU_SESSION. Sends the data on the SSCP-PU session on the connection configured for diagnostics if the session is active. (The data is added to the error log regardless of whether it is sent on the session or whether SV_STATE_CHECK or SV_COMM_SUBSYSTEM_NOT_LOADED is returned.) Allowed values include SV_SEND and SV_NO_SEND.
3	LOCAL_LOGGING. Logs local alerts that are retrieved from the error log and forwarded to the host. This option is valid only when data_type SV_NMVT or data_type SV_ALERT_SUBVECTORS with option SV_SEND is specified. Allowed values include SV_LOG and SV_NO_LOG.
4 through 7	Reserved.


Extensions for the Windows Environment
Extensions for the Windows Environment: Overview

The API extensions to the Windows CSV have been designed for all implementations and versions of the Microsoft Windows graphical environment version 3.0 and later. They provide support for maximum Windows programming compatibility and optimal application performance in both 16-bit and 32-bit operating environments.

Windows CSV allows multithreaded Windows-based processes. Multithreading is the running of several processes in rapid sequence within a single program. A process contains one or more threads of execution. The 16-bit Windows environment is not multithreaded. In this instance, a task corresponds to a process with a single thread. All references to threads in this document refer to actual threads in multithreaded Windows environments.

This help provides, for each extension, a definition of the function, syntax, returns, and remarks for using the extension. Corresponding prototypes for each extension are located in the WINCSV.H header file.


GetCsvReturnCode( )

Converts the primary and secondary return codes in the VCB to a printable string. This function provides a standard set of error strings for use by applications using CSVs.

Syntax

int WINAPI GetCsvReturnCode (struct csv_hdr FAR * vpb, UINT buffer_length, unsigned char FAR * buffer_addr)

Parameter	Description
vpb	Supplied parameter; specifies the address of the verb parameter block.
buffer_length	Supplied parameter; specifies the length of the buffer pointed to by buffer_addr. The recommended length is 256.
buffer_addr	Supplied/returned parameter; specifies the address of the buffer that will hold the formatted, null-terminated string.
Return Codes

This function either returns the length of the returned string (not including terminating zero) or, for failure, returns 0. In the Windows NT (Win32) environment, when 0 is returned, the Win32 function GetLastError can be called, to obtain one of the following secondary return codes:

0x20000001

The parameters are invalid; the function could not read from the specified verb parameter block or could not write to the specified buffer.

0x20000002

The specified buffer is too small; the buffer contains a truncated version of the error string.

0x20000003

The CSV string library CSVST32.DLL could not be loaded.

Remarks

The descriptive error string returned in buffer_addr does not terminate with a new line character (\n).

The descriptive error strings are contained in CSVSTR.DLL (for Windows) or CSVST32.DLL (for Windows NT) and can be customized for different languages.


WinCSVCleanup( )

Terminates and deregisters an application from a Windows CSV implementation.

Syntax

BOOL WINAPI WinCSVCleanup(void);

Returns

The return value specifies whether the deregistration was successful. If the value is not 0, the application was successfully deregistered. The application was not deregistered if a value of 0 is returned.

Remarks

Use WinCSVCleanup( ) to indicate deregistration of a Windows CSV application from a Windows CSV implementation. This function can be used, for example, to free up resources allocated to the specific application.

See also

WinCSVStartup( )


WinAsyncCSV( )

Provides an asynchronous entry point for TRANSFER_MS_DATA only. If this extension is used for any other verb, the behavior will be synchronous. Use this extension instead of the blocking version of the verb if you will run your application under Windows version 3.x.

Syntax

HANDLE WINAPI WinAsyncCSV(hwnd, LONG);

Returns

The return value specifies whether the asynchronous resolution request was successful. If the extension was successful, the actual return value is an asynchronous task handle. If the function was not successful, a 0 is returned.

Remarks

When the asynchronous operation is complete, the application's window hWnd receives the message returned by RegisterWindowMessage with "WinAsyncCSV" as the input string. The wParam argument contains the asynchronous task handle returned by the original function call. The lParam argument contains the original VCB pointer and can be dereferenced to determine the final return code.

If the function returns successfully, a WinAsyncCSV( ) message will be posted to the application when the operation completes or the conversation is cancelled.


WinCSVStartup( )

Allows an application to specify the version of Windows CSV required and to retrieve details of the specific Windows CSV implementation. This function must be called by an application before issuing any further Windows CSV calls to register itself with a Windows CSV implementation.

Syntax

int WINAPI WinCSVStartup(WORD wVersionRequired, LPWCSVDATA);

Parameter	Description
wVersionRequired	Specifies the version of Windows CSV support required. The high-order byte specifies the minor version (revision) number; the low-order byte specifies the major version number. For this release of Windows CSV, 1.0 is the correct version number.
LPWCSVDATA	Contains information about the underlying Windows CSV DLL implementation. The first wVersion field has the same structure as the wVersionRequired parameter and the szDescription field contains a string identifying the vendor of the Windows CSV DLL. The description field is only meant to provide a display string for the application and should not be used to programatically distinguish between Windows CSV implementations.
Returns

The return value specifies whether the application was registered successfully and whether the Windows CSV implementation can support the specified version number. If the value is 0, it was registered successfully. Otherwise, the return value is one of the following:

WCSVSYSNOTRERADY

Indicates that the underlying network subsystem is not ready for network communication.

WCSVVERNOTSUPPORTED

The version of Windows CSV support requested is not provided by this particular Windows CSV implementation.

WCSVINVALID

The Windows CSV version specified by the application is not supported by this DLL.

Remarks

For this release of Windows CSV, 1.0 is the correct version number.

In order to support future Windows CSV implementations and applications that may have functionality differences from Windows CSV version 1.0, a negotiation takes place in WinCSVStartup( ). An application passes to WinCSVStartup( ) the Windows CSV version that it can use. If this version is lower than the lowest version supported by the Windows CSV DLL, the DLL cannot support the application and WinCSVStartup( ) fails. If the version is not lower, however, the call succeeds and returns the highest version of Windows CSV supported by the DLL. If this version is lower than the lowest version supported by the application, the application either fails its initialization or attempts to find another Windows CSV DLL on the system.

This negotiation allows both a Windows CSV DLL and a Windows CSV application to support a range of Windows CSV versions. An application can successfully use a DLL if there is any overlap in the versions. The following table illustrates how WinCSVStartup( ) works in conjunction with different application and DLL versions.

App  versions	DLL versions	To WinCSVStartup( )	From WinCSVStartup( )	Result
1.0	1.0	1.0	1.0	Use 1.0
1.0, 2.0	1.0	2.0	1.0	Use 1.0
1.0	1.0, 2.0	1.0	2.0	Use 1.0
1.0	2.0, 3.0	1.0	WCSVINVALID	Fail
2.0, 3.0	1.0	3.0	1.0	App Fails
1.0, 2.0, 3.0	1.0, 2.0, 3.0	3.0	3.0	Use 3.0
Details of the actual Windows CSV implementation are described in the WCSVDATA structure defined as follows:

typedef struct tagWCSVDATA {

            WORD wVersion;

            char szDescription[WCSVDESCRIPTION_LEN+1];

            } WCSVDATA, FAR *LPWCSVDATA;

Having made its last Windows CSV call, an application should call WinCSVCleanup.

Each Windows CSV implementation must make a WinCSVStartup( ) call before issuing any other Windows CSV calls. Consequently, this function can be used for initialization purposes.

See also

WinCSVCleanup( )


Microsoft Support Services Contents
Microsoft Support Services

  When You Have a Question

  Product Support Within the United States and Canada


When You Have a Question

If you have a question about SNA Server, first look in the product documentation or consult online Help. You can also find late-breaking updates and technical information in the README file that came with your SNA Server disks. If you cannot find the answer, contact the Microsoft Support Network.

Outside the United States, contact Microsoft Product Support Services at the Microsoft subsidiary office that serves your area.

The Microsoft Support Network

The Microsoft Support Network offers you a wide range of choices and access to high-quality, responsive technical support. Microsoft recognizes that support needs vary from user to user; the Microsoft Support Network allows you to choose the type of support that best meets your needs, with options ranging from electronic bulletin boards to annual support programs. For information about support services in the United States and Canada, see Product Support Within the United States and Canada.

Services vary outside the United States and Canada. In other locations, contact a local Microsoft subsidiary for information. The Microsoft Support Network is subject to Microsoft's then-current prices, terms, and conditions, and is subject to change without notice.


Product Support Within the United States and Canada

In the United States and Canada, the following support services are available through the Microsoft Support Network:

Electronic Services

Priority Support

Text Telephone

Other Support Options

Other Microsoft Services


Electronic Services

These services are available 24 hours a day, 7 days a week, including holidays.

Microsoft FastTips

(800) 936-4400 on a touch-tone telephone. Receive automated answers to common questions, and access a library of technical notes, all delivered by recording or fax. You can use the following keys on your touch-tone telephone after you reach FastTips:

To	Press
Advance to the next message	*
Repeat the current message	7
Return to the beginning of FastTips	#
CompuServe

Interact with other users and Microsoft support engineers, or access the Microsoft Knowledge Base to get product information. At any ! prompt, type go microsoft to access Microsoft forums, type go mskb to access the Microsoft Knowledge Base, or type go mssna to access the Microsoft SNA forum. For an introductory CompuServe membership kit, call (800) 848-8199, operator 524.

Microsoft Download Service

Access, via modem, the Driver Library and the most current technical notes (1200, 2400, or 9600 baud; no parity; 8 data bits; 1 stop bit). In the United States, call (206) 936-6735. In Canada, call (905) 507-3022.

Internet

Access the Driver Library and the Microsoft Knowledge Base. The Microsoft Internet FTP archive host, ftp.microsoft.com, supports anonymous login. When logging in as anonymous, you should type your complete electronic mail name as your password.

See also

Priority Support

Text Telephone

Other Support Options

Other Microsoft Services


Priority Support

The Microsoft Support Network offers priority telephone access to Microsoft support engineers 24 hours a day, 7 days a week, except holidays.

In the United States, call (900) 555-2100; $150 (U.S.) per incident. Charges appear on your telephone bill.

In the United States, call (800) 936-5900; $150 (U.S.) per incident, billed to your VISA card, MasterCard, or American Express card.

In Canada, call (800) 668-7975 for more information.

See also

Electronic Services

Text Telephone

Other Support Options

Other Microsoft Services


Text Telephone

Microsoft text telephone (TT/TDD) services are available for the deaf or hard-of-hearing. In the United States, using a TT/TDD modem, dial (206) 635-4948 between 6:00 A.M. and 6:00 P.M. Pacific time, Monday through Friday, excluding holidays. In Canada, using a TT/TDD modem, dial (905) 568-9641 between 8:00 A.M. and 8:00 P.M. Eastern time, Monday through Friday, excluding holidays.

See also

Electronic Services

Priority Support

Other Support Options

Other Microsoft Services


Other Support Options

The Microsoft Support Network offers annual and multiple incident support plans. For information, in the United States, contact the Microsoft Support Network Sales and Information group at (800) 936-3500 between 6:00 A.M. and 6:00 P.M. Pacific time, Monday through Friday, excluding holidays. In Canada, call (800) 668-7975 between 8:00 A.M. and 8:00 P.M. Eastern time, Monday through Friday, excluding holidays.

Electronic Services

Priority Support

Text Telephone

Other Microsoft Services


Other Microsoft Services

Microsoft Solution Providers Program

Microsoft Solution Providers are independent organizations that provide consulting, integration, customization, development, technical support and training, and other services for Microsoft products. These companies are called Solution Providers because they apply technology and provide services to help solve real-world problems.

In the United States, for more information about the Microsoft Solution Providers program or the Microsoft Solution Provider nearest to you, please call (800) 426-9400 between 6:30 A.M. and 5:30 P.M. Pacific time, Monday through Friday, excluding holidays. In Canada, call (800) 563-9048 between 8:00 A.M. and 8:00 P.M. Eastern time, Monday through Friday, excluding holidays.

Microsoft TechNet

Microsoft TechNet is an annual information service created for those who support or educate end users, administer networks or databases, create automated solutions and recommend or evaluate information technology solutions.  Microsoft TechNet gives you the answers you need, when you need them by providing timely, comprehensive and in-depth information on Microsoft products and on supporting and administering Microsoft-based solutions via the monthly Microsoft TechNet CD and monthly TechNet Supplemental (Drivers & Patches) CD.

For more information about Microsoft TechNet, in the United States and Canada, call (800) 344-2121, dept. 3013, between 7:00 A.M. and 7:00 P.M. Central time, Monday through Friday.

See also

Electronic Services

Priority Support

Text Telephone

Other Support Options