|
As was mentioned earlier, use the SetItemHeight(-1, ...) method.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
Was there message for me ? Deleted ?
Was you concerned about some code ?
|
|
|
|
|
Oops... What a fool I am!
I never think about setting index as -1. Its working fine.
Thank you very much!!!
- NS -
|
|
|
|
|
Hi all,
I want to get all printers in my company'LAN,but i just have enumd
printers that is in my computer's workgroup.There are 22 workgroups in my company's Lan.
i have enumed 3 printers by EnumPrinters like this
EnumPrinter(PRINTER_ENUM_REMOTE,NULL,1,pPrinterEnum,dwBytes,&pcbNeeded,&dwReturned);
EnumPrinters
(PRINTER_ENUM_LOCAL|PRINTER_ENUM_CONNECTIONS , NULL, 4, pPrinterEnum, dwBytes,&pcbNeeded,&dwReturned);
so how to get printers in whole LAN?
The same question was when i got computer in LAN,i also have got computer in my workgroup.
my code is here
CString strTemp;
CString strname="";
LPSERVER_INFO_101 pBuf = NULL;
DWORD dwLevel = 101;
DWORD dwPrefMaxLen = MAX_PREFERRED_LENGTH;
DWORD dwEntriesRead = 0;
DWORD dwTotalEntries = 0;
DWORD dwTotalCount = 0;
DWORD dwServerType = SV_TYPE_DOMAIN_ENUM ;
DWORD dwResumeHandle = 0;
NET_API_STATUS nStatus;
unsigned short * pszServerName = NULL;
char szOut[2048];
// Call the NetServerEnum function to retrieve information
// for all servers, specifying information level 101.
nStatus = NetServerEnum(pszServerName,
dwLevel,
(LPBYTE *) &pBuf,
dwPrefMaxLen,
&dwEntriesRead,
&dwTotalEntries,
dwServerType,
NULL,
&dwResumeHandle);
CString strTemp;
CString strname="";
LPSERVER_INFO_101 pBuf = NULL;
DWORD dwLevel = 101;
DWORD dwPrefMaxLen = MAX_PREFERRED_LENGTH;
DWORD dwEntriesRead = 0;
DWORD dwTotalEntries = 0;
DWORD dwTotalCount = 0;
DWORD dwServerType = SV_TYPE_DOMAIN_ENUM ;
DWORD dwResumeHandle = 0;
NET_API_STATUS nStatus;
unsigned short * pszServerName = NULL;
char szOut[2048];
// DWORD i;
// DWORD dwServerType = SV_TYPE_DOMAIN_ENUM; // all servers
// LPSERVER_INFO_101 pTmpBuf;
// Call the NetServerEnum function to retrieve information
// for all servers, specifying information level 101.
nStatus = NetServerEnum(pszServerName,
dwLevel,
(LPBYTE *) &pBuf,
dwPrefMaxLen,
&dwEntriesRead,
&dwTotalEntries,
dwServerType,
NULL,
&dwResumeHandle);
Thanks.
at last .forgive me ,My English is not very good.
Liu Ke
|
|
|
|
|
bios8086 wrote: EnumPrinter(PRINTER_ENUM_REMOTE,NULL,1,pPrinterEnum,dwBytes,&pcbNeeded,&dwReturned);
If Level is 1, and Flags contains PRINTER_ENUM_REMOTE, and Name is NULL, then the function enumerates the printers in the user's domain/workgroup. Do you (not your computer) belong to the other 21 workgroups? I'm not sure if this is the problem, but it would behoove you to check it out.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
DavidCrow:
Thank you for your reply. I know if Level is 1, and Flags contains PRINTER_ENUM_REMOTE, and Name is NULL, the function enumerates the printers in the user's domain/workgroup.
yes,I belong to the other 21 workgroups .Becausse i can enumerated 22 workgroups name by function NetServerEnum. i also found all of the workgroups in "Microsoft Windows Network".
So,do you have any ways to find all printers /computer ? not just only in my domain.
|
|
|
|
|
Hi All ,
I just want to check my depth in c++, so
Please Suggest some free Online Test
Regrads
Pankaj Jain
|
|
|
|
|
|
WhiteSky wrote: an you be more specific
he want online test for C++??
|
|
|
|
|
I want some links for Online C++ Test
Pankaj Jain
|
|
|
|
|
|
Have you looked at Brainbench? They offer free tests a few times per year.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
Hello all,
I want to pass class object in my thread.How to do it??
when i m not passing any arguments to my thread then i m calling AfxBeginThread Like this,
pThread = (CMyThread*) AfxBeginThread( RUNTIME_CLASS(CMyThread),
THREAD_PRIORITY_NORMAL,
NULL,
CREATE_SUSPENDED,
NULL);
i have made a class constituting of 2 members CString and int
i want to pass these values in my thread class
i have made a object of this class like this
commo *c;
c = new commo;
then passing its variable values
now i want to pass this object to thread class
when i m passing it to thread class like this
pThread = (CMyThread*) AfxBeginThread( RUNTIME_CLASS(CMyThread),c);
Its giving error
error C2665: 'AfxBeginThread' : none of the 2 overloads can convert parameter 1 from type 'struct CRuntimeClass *'
can anybody help me in this
thanxs in advance
|
|
|
|
|
cast c to LPVOID and then pass
pThread = (CMyThread*) AfxBeginThread( RUNTIME_CLASS(CMyThread),(LPVOID)c);
nave
|
|
|
|
|
its ging error
error C2665: 'AfxBeginThread' : none of the 2 overloads can convert parameter 1 from type 'struct CRuntimeClass *'
|
|
|
|
|
the commo class is derived from the CWinThread class isnt it?
Put the following macro in the header file inside the public setion of the class
DECLARE_DYNCREATE( commo )
And in the cpp file
IMPLEMENT_DYNCREATE( commo , CWinThread )
nave
|
|
|
|
|
|
can you show me the commo class?
nave
|
|
|
|
|
/*commo.h*/
#if !defined(AFX_COMMO_H__F29BF3A6_71CF_42F8_908F_372B46ECD074__INCLUDED_)
#define AFX_COMMO_H__F29BF3A6_71CF_42F8_908F_372B46ECD074__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// commo.h : header file
//
/////////////////////////////////////////////////////////////////////////////
// Ccommo thread
class Ccommo : public CWinThread
{
public:
DECLARE_DYNCREATE(Ccommo)
public:
Ccommo(); // protected constructor used by dynamic creation
// Attributes
public:
int nitem;
CString txt;
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(Ccommo)
public:
virtual BOOL InitInstance();
virtual int ExitInstance();
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~Ccommo();
// Generated message map functions
//{{AFX_MSG(Ccommo)
// NOTE - the ClassWizard will add and remove member functions here.
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_COMMO_H__F29BF3A6_71CF_42F8_908F_372B46ECD074__INCLUDED_)
/**********commo.cpp file*************************/
// commo.cpp : implementation file
//
#include "stdafx.h"
#include "totalthread.h"
#include "commo.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// Ccommo
IMPLEMENT_DYNCREATE(Ccommo, CWinThread)
Ccommo::Ccommo()
{
}
Ccommo::~Ccommo()
{
}
BOOL Ccommo::InitInstance()
{
// TODO: perform and per-thread initialization here
return TRUE;
}
int Ccommo::ExitInstance()
{
// TODO: perform any per-thread cleanup here
return CWinThread::ExitInstance();
}
BEGIN_MESSAGE_MAP(Ccommo, CWinThread)
//{{AFX_MSG_MAP(Ccommo)
// NOTE - the ClassWizard will add and remove mapping macros here.
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// Ccommo message handlers
|
|
|
|
|
sorry sorry my mistake...
actually CMyThread need to be derived from CWinThread and those macros need to be put in that class.
nave
|
|
|
|
|
CMyThread Class is derived from another class WinTimerthread and this class is derived from CWinThreadClass
Now what i have done is i have declared both variable in WinTimerThread Class instead of commo class
and in my main class passed values it those two variables of WinTimerThread class
but againits giving same error
|
|
|
|
|
did put those macros in both CMyThread and WinTimerthread class?
nave
|
|
|
|
|
in CWinTimerThread.cpp
IMPLEMENT_DYNCREATE(CWinTimerThread, CWinThread)
in CWinTimerThread.h
DECLARE_DYNCREATE(CWinTimerThread)
in CMyThread.cpp
IMPLEMENT_DYNCREATE(CMyThread, CWinTimerThread)
in CMyThread.h
DECLARE_DYNCREATE(CMyThread)
i have applied all these macros...
|
|
|
|
|
|
Hi,
For passing info into a user thread you should make a set function
The you create the thread suspended like in your example.
Next you can initialize the thread giving it all the required info, data & objects.
Then you start the thread
CMyThread* pThread = (CMyThread*) AfxBeginThread( RUNTIME_CLASS(CMyThread),
THREAD_PRIORITY_NORMAL, NULL, CREATE_SUSPENDED, NULL);
Commo* pC = new Commo();
pThread->SetCommo(pC);
pThread->ResumeThread();
This seems to me to be the simplest way to achieve this. (I always use this way )
codito ergo sum
|
|
|
|