|
SYSTEMTIME stTime = {0};<br />
GetLocalTime( &stTime );<br />
int Hours = stTime.wHour;<br />
int Minutes = stTime.wMinute;<br />
int Seconds = stTime.wSecond;
|
|
|
|
|
Hi All,
I am currently interested in finding how firewall (in Windows) works. I could find information regarding packet filtering, but I am wondering how to directly blocked/denied a program (let's say IE @_@) to access to internet since I can find such functionality on existing firewall application (e.g. Windows defender firewall/ZoneAlarm). Would you help to provide some information regarding this? (Website/document/reference)
Thanks!
Yours,
Vincent
|
|
|
|
|
StarMeteor wrote: Would you help to provide some information regarding this? (Website/document/reference)
Codeproject firewalls[^]
|
|
|
|
|
Hello everyone,
Here is the related C++ Spec and my test code. I think virtual base class, no matter direct virtual base class or not, will always be constructed before non-virtual class (including non-virtual direct base class), correct?
Another question is, what means "and only for the constructor of the most derived class as described below" in related Spec statements?
Spec:
--------------------
12.6.2 Initializing bases and members [class.base.init]
5 Initialization shall proceed in the following order:
— First, and only for the constructor of the most derived class as described below, virtual base classes shall
be initialized in the order they appear on a depth-first left-to-right traversal of the directed acyclic graph
of base classes, where “left-to-right” is the order of appearance of the base class names in the derived
class base-specifier-list.
— Then, direct base classes shall be initialized in declaration order as they appear in the base-specifier-list
(regardless of the order of the mem-initializers).
— Then, nonstatic data members shall be initialized in the order they were declared in the class definition
(again regardless of the order of the mem-initializers).
— Finally, the body of the constructor is executed.
[Note: the declaration order is mandated to ensure that base and member subobjects are destroyed in the
reverse order of initialization. ]
--------------------
#include <iostream>
using namespace std;
class B1 {
public:
B1()
{
cout << "constructor B1 " << endl;
}
};
class B2 {
public:
B2()
{
cout << "constructor B2 " << endl;
}
};
class D1 : virtual public B1 {
public:
D1()
{
cout << "constructor D1 " << endl;
}
};
class D2 : public virtual B1, public B2 {
public:
D2()
{
cout << "constructor D2 " << endl;
}
};
class D3 : public D1, virtual public D2 {
public:
D3()
{
cout << "constructor D3 " << endl;
}
};
int main()
{
D3 d;
return 0;
}
thanks in advance,
George
|
|
|
|
|
Your free quesions limit has ended yesterday midnight. You need to start paying now. lol got late for my office, bug someone else till I comeback. Kid, I'm just joking. Dont take your 2.0 semi-automatic or 1.0 fully automatic guns. byebye
OK,. what country just started work for the day ? The ASP.NET forum is flooded with retarded questions. -Christian Graus
Best wishes to Rexx[^]
|
|
|
|
|
Thanks VuNic,
Your past and continue suppose are appreciated.
regards,
George
|
|
|
|
|
VuNic wrote: Dont take your 2.0 semi-automatic or 1.0 fully automatic guns. byebye
What about AK100, i have still that in possesion! and also i know your location
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You/codeProject$$>
|
|
|
|
|
|
Thanks Hamid,
Great link!
regards,
George
|
|
|
|
|
Hi,
I want to get ALT, SHIFT and CTRL key from keyboard.
Is it possible in OnKeyDown event?
How can I do it?
Hope you can help me.
Thanks.
|
|
|
|
|
OnSysKeyDown
OK,. what country just started work for the day ? The ASP.NET forum is flooded with retarded questions. -Christian Graus
Best wishes to Rexx[^]
|
|
|
|
|
Thanks for the reply.
I think it's the same function as OnKeyDown().
Can I monitor SHIFT and CTRL with it?
|
|
|
|
|
Sorry ignore my previous reply. It's for ATL combination keys.
Clickety[^]
OK,. what country just started work for the day ? The ASP.NET forum is flooded with retarded questions. -Christian Graus
Best wishes to Rexx[^]
|
|
|
|
|
<code>
BOOL bCtrl = ::GetKeyState(VK_CONTROL);
BOOL bAlt = ::GetKeyState(VK_SHIFT);
BOOL bShift = ::GetKeyState(VK_MENU);</code>
This will help you to know the combination keydown tracking.
The secret of life is not enjoyment
but education through experience.
- Swami Vivekananda.
|
|
|
|
|
Mahesh Kulkarni wrote: BOOL bCtrl = ::GetKeyState(VK_CONTROL); BOOL bAlt = ::GetKeyState(VK_SHIFT); BOOL bShift = ::GetKeyState(VK_MENU);
though it is the nice way to get key state, but you have poll this thing every time to get state of the key.,
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You/codeProject$$>
|
|
|
|
|
Yes alok I do agree with u.
But I got only this solution to do this....if any alternative for this please tell.
The secret of life is not enjoyment
but education through experience.
- Swami Vivekananda.
|
|
|
|
|
Thank you for the reply.
I will try this now.
|
|
|
|
|
I tried your code inside OnKeyDown() event but
the result is unpredictable.
if(::GetKeyState(VK_CONTROL))
AfxMessageBox(L"CONTROL");
if(::GetKeyState(VK_SHIFT))
AfxMessageBox(L"SHIFT");
if(::GetKeyState(VK_MENU))
AfxMessageBox(L"ALT");
When ALT is pressed, either no display or
wrong message(CONTROL or SHIFT)
CONTROL and SHIFT sometimes correct but
sometimes display all.
Did i do something wrong?
How will i use the code?
|
|
|
|
|
Try this...
<code>
BOOL bCtrl = ::GetKeyState(VK_CONTROL)& 0x8000;
BOOL bShift = ::GetKeyState(VK_SHIFT)& 0x8000;
BOOL bAlt = ::GetKeyState(VK_MENU)& 0x8000 ;
</code>
The secret of life is not enjoyment
but education through experience.
- Swami Vivekananda.
|
|
|
|
|
Hello everyone,
Suppose in Pimpl Idiom, we put private members into Pimpl class (implementation class).
(http://www.gotw.ca/gotw/024.htm)
My questions are, if we changed the Pimpl class and do not change visible parts of the whole component (class). There are two parties, component and client. Inside the component, there are two parts, Pimpl part and visible (to client) part.
1. For the component, I think it needs re-compile, since private members of Pimpl part changed are referred by visible parts (public members refer to private members);
2. I am not sure whether for the whole component, it needs to relink? I think it depends on whether other compile unit of the component invokes functions from the Pimpl part of component? Is it correct?
3. I am not sure whether for the client, it needs re-link? If we provide the whole component as a static lib, client needs to re-link, right? And if we provide the whole component as a DLL, and client implicit links with it with import library, does the client needs relink again?
thanks in advance,
George
|
|
|
|
|
|
Thanks for sharing information from another link, VuNic!
But does it relates to my original question of this thread?
regards,
George
|
|
|
|
|
Rather than ask all of these questions, why don't you dummy up a small example and see how it behaves? Pimpl idiom, opaque pointer, and d-pointer are all related.
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Thanks DavidCrow,
What is d-pointer?
I divide into small piece because we are discuss in short statements, e.g. ten lines of answers, 5 minutes or less is enough to answer a question. If my questions are too big, I do not want to bring extra burden to people here to answer, say write an answer for 20 minutes.
regards,
George
|
|
|
|
|
<br />
#include "FindNoPlat.h"<br />
#include "stdafx.h"<br />
#include "ODBC1.h"<br />
<br />
#include "ODBC1Set.h"<br />
#include "ODBC1Doc.h"<br />
#include "ODBC1View.h"<br />
<br />
#ifdef _DEBUG<br />
#define new DEBUG_NEW<br />
#undef THIS_FILE<br />
static char THIS_FILE[] = __FILE__;<br />
#endif<br />
<br />
<br />
IMPLEMENT_DYNCREATE(CODBC1View, CRecordView)<br />
<br />
BEGIN_MESSAGE_MAP(CODBC1View, CRecordView)<br />
ON_COMMAND(ID_RECORD_APPEND, OnRecordAppend)<br />
ON_BN_CLICKED(IDC_CHOICE1, OnChoice1)<br />
ON_BN_CLICKED(IDC_CHOICE2, OnChoice2)<br />
ON_COMMAND(ID_RECORD_FIND, OnRecordFind)<br />
ON_COMMAND(ID_FILE_PRINT, CRecordView::OnFilePrint)<br />
ON_COMMAND(ID_FILE_PRINT_DIRECT, CRecordView::OnFilePrint)<br />
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CRecordView::OnFilePrintPreview)<br />
END_MESSAGE_MAP()<br />
<br />
<br />
CODBC1View::CODBC1View()<br />
: CRecordView(CODBC1View::IDD)<br />
{<br />
m_pSet = NULL;<br />
m_cStatus_saman = _T("");<br />
<br />
}<br />
<br />
CODBC1View::~CODBC1View()<br />
{<br />
}<br />
<br />
void CODBC1View::DoDataExchange(CDataExchange* pDX)<br />
{<br />
int iStrLength;<br />
<br />
iStrLength = m_pSet->m_Status_saman.GetLength();<br />
m_cStatus_saman="$"+m_pSet->m_Status_saman.Left(iStrLength-2);<br />
<br />
<br />
CRecordView::DoDataExchange(pDX);<br />
DDX_Control(pDX, IDC_CHOICE2, m_oChoice2);<br />
DDX_Control(pDX, IDC_CHOICE1, m_oChoice1);<br />
DDX_Control(pDX, IDC_EDIT4, m_opermit_perjalanan);<br />
DDX_Control(pDX, IDC_EDIT3, m_oStatus_saman);<br />
DDX_Control(pDX, IDC_EDIT2, m_oSykt);<br />
DDX_Control(pDX, IDC_EDIT1, m_oNo_plat);<br />
DDX_FieldText(pDX, IDC_EDIT1, m_pSet->m_No_plat, m_pSet);<br />
DDX_FieldText(pDX, IDC_EDIT2, m_pSet->m_Sykt, m_pSet);<br />
DDX_FieldText(pDX, IDC_EDIT4, m_pSet->m_permit_perjalanan, m_pSet);<br />
DDX_Text(pDX, IDC_EDIT3, m_cStatus_saman);<br />
}<br />
<br />
BOOL CODBC1View::PreCreateWindow(CREATESTRUCT& cs)<br />
{<br />
<br />
return CRecordView::PreCreateWindow(cs);<br />
}<br />
<br />
void CODBC1View::OnInitialUpdate()<br />
{<br />
m_pSet = &GetDocument()->m_oDBC1Set;<br />
CRecordView::OnInitialUpdate();<br />
GetParentFrame()->RecalcLayout();<br />
ResizeParentToFit();<br />
<br />
}<br />
<br />
<br />
BOOL CODBC1View::OnPreparePrinting(CPrintInfo* pInfo)<br />
{<br />
return DoPreparePrinting(pInfo);<br />
}<br />
<br />
void CODBC1View::OnBeginPrinting(CDC* , CPrintInfo* )<br />
{<br />
}<br />
<br />
void CODBC1View::OnEndPrinting(CDC* , CPrintInfo* )<br />
{<br />
}<br />
<br />
<br />
#ifdef _DEBUG<br />
void CODBC1View::AssertValid() const<br />
{<br />
CRecordView::AssertValid();<br />
}<br />
<br />
void CODBC1View::Dump(CDumpContext& dc) const<br />
{<br />
CRecordView::Dump(dc);<br />
}<br />
<br />
CODBC1Doc* CODBC1View::GetDocument()
{<br />
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CODBC1Doc)));<br />
return (CODBC1Doc*)m_pDocument;<br />
}<br />
#endif //_DEBUG<br />
<br />
CRecordset* CODBC1View::OnGetRecordset()<br />
{<br />
return m_pSet;<br />
}<br />
<br />
<br />
<br />
void CODBC1View::OnRecordAppend() <br />
{<br />
<br />
if (m_pSet->CanAppend() == 0)<br />
MessageBox("Cannot Append Records",<br />
"Database Opening Error",<br />
MB_OK|MB_ICONERROR);<br />
<br />
else<br />
{<br />
m_oChoice1.SetWindowText("Submit Data");<br />
m_oChoice2.SetWindowText("Cancel");<br />
<br />
<br />
<br />
m_oNo_plat.SetWindowText("");<br />
m_oSykt.SetWindowText("");<br />
m_oStatus_saman.SetWindowText("");<br />
m_opermit_perjalanan.SetWindowText("");<br />
}<br />
<br />
}<br />
<br />
.<br />
.<br />
<br />
void CODBC1View::OnRecordFind() <br />
{<br />
<br />
FindNoPlat oFindIt;
BOOL Found=FALSE;
int iStrLength;
char* cQuantity="Empty1";
char* cStorage="Empty2";
CDBVariant varBookmark;
<br />
if (oFindIt.DoModal()==IDOK)<br />
<br />
{<br />
if (m_pSet->CanBookmark())<br />
m_pSet->GetBookmark(varBookmark);<br />
<br />
m_pSet->MoveFirst();<br />
<br />
<br />
while (!m_pSet->IsEOF() ^ Found);<br />
<br />
{<br />
if (m_pSet->m_No_plat == oFindIt.m_FindNoPlat);<br />
Found=TRUE;<br />
<br />
<br />
m_pSet->MoveNext();<br />
<br />
}<br />
<br />
if (!Found);<br />
<br />
{<br />
<br />
MessageBox("Record not found!",<br />
"Database Error",<br />
MB_OK|MB_ICONERROR);<br />
<br />
if (m_pSet->CanBookmark())<br />
m_pSet->SetBookmark(varBookmark);<br />
<br />
else<br />
m_pSet->MoveFirst();<br />
<br />
}<br />
<br />
<br />
{<br />
<br />
m_oNo_plat.SetWindowText(m_pSet->m_No_plat);<br />
m_oSykt.SetWindowText(m_pSet->m_Sykt);<br />
m_opermit_perjalanan.SetWindowText(m_pSet->m_permit_perjalanan);<br />
<br />
<br />
iStrLength = m_pSet->m_Status_saman.GetLength();<br />
m_oStatus_saman.SetWindowText("$" + m_pSet->m_Status_saman);<br />
}<br />
}<br />
<br />
<br />
}<br />
<br />
<br />
this code use to find data in database using application ODBC..
there were 5 error while i compie it..
error C2065: 'FindNoPlat' : undeclared identifier
error C2146: syntax error : missing ';' before identifier 'oFindIt'
error C2065: 'oFindIt' : undeclared identifier
error C2228: left of '.DoModal' must have class/struct/union type
<
can anybody explain it to me..
tq
|
|
|
|
|