Logo UGIdotNET

Discussione 'Interop'

# Pubblicato il 20 mar 2004 15.48 - Rispondi
Mirko Pozzetti
Interop
Salve a tutti, devo creare una nuova porta di stampa da codice, ho trovato la seguente API
Public Declare Auto Function AddPortEx Lib "winspool.drv" _
Alias "AddPortExA" _
(ByVal pName As String, _
ByVal pLevel As Long, _
ByVal lpBuffer As Any, _
ByVal pMonitorName As String) As Long

dove lpBuffer è la seguente Structure
<System.Runtime.InteropServices.StructLayout(Runtime.InteropServices.LayoutKind.Sequential, Pack:=1)> _
Public Structure PORT_INFO_1
Public pPortName As String
End Structure
Il problema è che la porta non viene creata.
Credo che ci sia un errore nel passaggio dei parametri ma non so dove.
L'API utilizzata in VB6 funziona senza problemi.
Qualcuno saprebbe darmi una mano?

Grazie a tutti.
Ciao.
# Pubblicato il 20 mar 2004 16.42 - Rispondi
Corrado Cavalli [MVP]
Re: Interop

Premessa:

"The AddPortEx function is out of date and for use only with Windows NT 4.0
and previous versions"

da MSDN:

BOOL
(WINAPI *pfnAddPortEx)(
HANDLE hMonitor //MONITOR2 only
LPWSTR pName,
DWORD Level,
LPBYTE lpBuffer,
LPWSTR lpMonitorName
);

Public Declare Auto Function AddPortEx(ByVal pName as String,byval
level as Int32, byval lpBuffer as PORT_INFO_1,byval lpMonitorName as string)

<System.Runtime.InteropServices.StructLayout(Runtime.InteropServices.LayoutK
ind. Sequential, Pack:=1)> _
Public Structure PORT_INFO_1 <
MarshalAs( UnmanagedType.LPStr, SizeConst:=3 )>Public pPortName As String
End Structure

Non l'ho provata...

HTH

--
Corrado Cavalli [Microsoft .NET MVP-MCP]
UGIdotNET - http://www.ugidotnet.org
Weblog: http://www.ugidotnet.org/710.blog



----------------------
Questo messaggio è stato postato da microsoft.public.it.dotnet.vb.

© 2001 User Group Italiano UGIdotNET. Tutti i diritti riservati. Note legali. - Partita IVA 01927050185