Page 1 of 1

ayuda con api harbour

Posted: Tue Feb 18, 2020 6:47 pm
by carlos vargas
Estimados, ayuda sera agradecida:
tengo este programa en el cual quiero implementar una función api de windows
necesito verificar que los primeros dos parametros son en Wide, ver si es posible usar el conocido hb_parc, lo otro es ver si funciona, no se como seria sacar la info, me parece que lo mejor es crear un array, pero no he sacado ni un valor aun.

gracias
carlos

Code: Select all

procedure main()
   ?NetGroupGetUsers( NIL, "Usuarios" )
return

#pragma BEGINDUMP

#include <windows.h>
#include <lmaccess.h>

#include "hbapi.h"
#include "hbvm.h"
#include "hbapiitm.h"

void DimeC( char *szText )
{
   MessageBox( NULL, szText, "Debug", MB_ICONINFORMATION|MB_SYSTEMMODAL );
}

void DimeN( LONG lNum )
{
   char szBuffer[ 80 ];
   wsprintf( szBuffer, "%ld", lNum );

   DimeC( szBuffer );
}

/*

NET_API_STATUS NET_API_FUNCTION NetGroupGetUsers(
  LPCWSTR    servername,
  LPCWSTR    groupname,
  DWORD      level,
  LPBYTE     *bufptr,
  DWORD      prefmaxlen,
  LPDWORD    entriesread,
  LPDWORD    totalentries,
  PDWORD_PTR ResumeHandle );

typedef struct _GROUP_USERS_INFO_0 {
  LPWSTR grui0_name;
} GROUP_USERS_INFO_0, *PGROUP_USERS_INFO_0, *LPGROUP_USERS_INFO_0;

typedef struct _GROUP_USERS_INFO_1 {
  LPWSTR grui1_name;
  DWORD  grui1_attributes;
} GROUP_USERS_INFO_1, *PGROUP_USERS_INFO_1, *LPGROUP_USERS_INFO_1;

*/

//Use: NetGroupGetUser( cServerName, cGlobalUsersName )
//     cServerName      -> DNS or NetBIOS name of the remote server on which the function is to execute. 
//                         If this parameter is NIL, the local computer is used.
//     cGlobalUsersName -> String that specifies the name of the global group whose members are to be listed.

HB_FUNC( NETGROUPGETUSERS )
{
  LPCWSTR szServer = (LPCWSTR) hb_parc( 1 );
  LPCWSTR szGroup  = (LPCWSTR) hb_parc( 2 );
  DWORD dwLevel = 0;
  BYTE *pBuffer = NULL;
  DWORD dwEntriesRead = 0, dwTotalEntries = 0;
  NET_API_STATUS stat;

  stat = NetGroupGetUsers( szServer, 
                           szGroup, 
                           dwLevel, 
                           &pBuffer, 
                           MAX_PREFERRED_LENGTH, 
                           &dwEntriesRead, 
                           &dwTotalEntries, 
                           NULL );

  DimeN( (LONG) stat );
  DimeN( (LONG) dwEntriesRead );
  DimeN( (LONG) dwTotalEntries );
  
  hb_retc( "POR HACER" );
}

#pragma ENDDUMP

Re: ayuda con api harbour

Posted: Wed Feb 19, 2020 10:28 am
by Antonio Linares
Carlos,

Revisa source\winapi\icons.c y busca fw_parWide( 1 );

Re: ayuda con api harbour

Posted: Wed Feb 19, 2020 4:46 pm
by carlos vargas
Gracias antonio con eso tengo para continuar.