blob: 362e412c869a0134b7d3c59337536ef696108004 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
#include "search.h"
CContactSearch::CContactSearch(unsigned int oid, SERootObject* root) : ContactSearch(oid, root)
{
this->proto = NULL;
this->SearchCompletedCallback == NULL;
this->ContactFindedCallback == NULL;
}
void CContactSearch::OnChange(int prop)
{
if (prop == P_CONTACT_SEARCH_STATUS)
{
CContactSearch::STATUS status;
this->GetPropContactSearchStatus(status);
if (status == FINISHED || status == FAILED)
{
this->isSeachFinished = true;
if (this->proto)
(proto->*SearchCompletedCallback)(this->hSearch);
}
}
}
void CContactSearch::OnNewResult(const ContactRef &contact, const uint &rankValue)
{
if (this->proto)
(proto->*ContactFindedCallback)(contact, this->hSearch);
}
void CContactSearch::BlockWhileSearch()
{
this->isSeachFinished = false;
this->isSeachFailed = false;
while (!this->isSeachFinished && !this->isSeachFailed)
Sleep(1);
}
void CContactSearch::SetProtoInfo(CSkypeProto* proto, HANDLE hSearch)
{
this->proto = proto;
this->hSearch = hSearch;
}
void CContactSearch::SetOnSearchCompleatedCallback(OnSearchCompleted callback)
{
this->SearchCompletedCallback = callback;
}
void CContactSearch::SetOnContactFindedCallback(OnContactFinded callback)
{
this->ContactFindedCallback = callback;
}
|