Hola, alguien sabe como usar un VXD en el Visual?
tengo el VxD, el binario y el source... tengo q pasarlo a DLL?
bueno, gracias
salu2.
creo q si, pero mucha idea no tengo de eso de las VxDs ;D
Para utilizar los VXDs existe la función DeviceIOControl (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/devio/base/deviceiocontrol.asp). Con esta función se pueden enviar mensajes directamente al VXD y ejecutar las funciones que tenga incorporadas. Es al nivel más bajo que se puede acceder legalmente desde VB.
Esta función toma como parámetro un hDevice que es el handle al VXD. Este handle se obtiene anteriormente abriendo el archivo del VXD mediante la función CreateFile.
DeviceIoControl funciona tanto para VXDs dinámicos como estáticos.
Saludos.
gracias a dios, un guru visita este foro xD
gracias EsLaYer
como haces para saber todo? jaja. salu2 capo.
PD: estuve 1 dia entero tratando de descubrir xq no creaba el file, y me di cuenta de q el vxd tiene q ser llamado con las barras, osea "\\.\vxd.vxd" ....... jaja, q idiota. lo digo por si acaso otro comete el mismo error que yo xD.
alguien sabe como pasar este code:
#define DDD (ULONG) CTL_CODE( 0x00008305, 0x00, METHOD_BUFFERED, FILE_ANY_ACCESS )
a codigo VB ?? agradeceria cualquier ayuda.
salu2.
CTL_CODE es una funcion. METHOD_BUFFERED el valor es 0, y de FILE_ANY_ACCESS es 0 tb.
a lo q me refiero es justamente a esa funcion, como la puedo pasar, xq no la entiendo, ahorita no la tengo aki, pero se q esta en un include del vc++.
cuando pase de vuelta, la posteo, a ver si me ayudan.
salu2
#define CTL_CODE(DeviceType, Function, Method, Access)( \
((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method))
en el ddk la tienes definida, no se hasta que punto podras usarlo en vb.
q rayos es el ddk? ;)
DDK = Driver Developers Kit
Es una base de datos con recursos para los programadores de drivers pero hay que pagar. Tiene info técnica, conceptos, funciones, etc.
Acá te dejo la macro que puso Mek pero para VB:
Function LShiftWord(ByVal Word As Integer, ByVal C As Integer) As Integer
Dim dw&
dw = Word * (2 ^ C)
If dw And &H8000& Then
LShiftWord = CInt(dw And &H7FFF&) Or &H8000
Else
LShiftWord = dw And &HFFFF&
End If
End Function
Function CTL_CODE(DeviceType As Integer, Func As Integer, Method As Integer, Access As Integer) As Long
CTL_CODE = (LShiftWord(DeviceType, 16) Or LShiftWord(Access, 14) Or LShiftWord(Func, 2) Or Method)
End Function
Saludos.
eso de que hay que pegar.... jeje. yo tengo el ddk para win9x y para 2k. si quereis alguno lo subo.
Sería un gran aporte de tu parte Cara_Webo, realmente a veces se hace dificil conseguirlo. Si podrías subirlo te lo agradecería porque a mi se me cagaron los CD de MSDN con el DDK incluido :'(.
Saludos.
decididamente algo esta mal en esa funcion, ya q LShiftWord me devuelve un integer, y eso jamas puede ser, xq el valor tiene q ser long, y aunque yo se lo cambie a long, el valor q me devuelve siempre es un numero entero.
la funcion cuando le paso el valor &H8305 me devuelve 0!!!!
no se porque en c++ funciona correctisimamente, y en VB no :'(
nimporta, ya lo arreglare.
suban ese ddk, q yo ni sabia q existia ;D