123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- #include <precomp.h>
- #include "textfeed.h"
- #include <bfc/pair.h>
- int TextFeed::registerFeed(const wchar_t *feedid, const wchar_t *initial_text, const wchar_t *description)
- {
-
-
- auto it = feeds.find(feedid);
- if (feeds.end() != it)
- {
- return FALSE;
- }
-
-
- feeds.insert({ feedid, {initial_text, description} });
- dependent_sendEvent(svc_textFeed::depend_getClassGuid(), Event_TEXTCHANGE, (intptr_t)feedid, (void*)initial_text, wcslen(initial_text) + 1);
- return TRUE;
- }
- int TextFeed::sendFeed(const wchar_t *feedid, const wchar_t *text)
- {
-
-
-
-
-
-
-
- auto it = feeds.find(feedid);
- if (feeds.end() == it)
- {
- return FALSE;
- }
-
-
-
-
- auto &ft = feeds[feedid];
- ft.first = text;
- dependent_sendEvent(svc_textFeed::depend_getClassGuid(), Event_TEXTCHANGE, (intptr_t)feedid, (void*)text, wcslen(text) + 1);
- return TRUE;
- }
- const wchar_t *TextFeed::getFeedText(const wchar_t *name)
- {
-
-
-
-
- auto it = feeds.find(name);
- if (it == feeds.end())
- {
- return NULL;
- }
- auto& ft = it->second;
- return ft.first.c_str();
- }
- const wchar_t *TextFeed::getFeedDescription(const wchar_t *name)
- {
-
-
-
- auto it = feeds.find(name);
- if (it == feeds.end())
- {
- return NULL;
- }
- auto& ft = it->second;
- return ft.second.c_str();
- }
- int TextFeed::hasFeed(const wchar_t *name)
- {
- return feeds.count(name);
- }
- void TextFeed::dependent_onRegViewer(api_dependentviewer *viewer, int add)
- {
- if (add)
- {
-
-
-
-
-
-
-
- for (auto it = feeds.begin(); it != feeds.end(); it++)
- {
- std::wstring key = it->first;
- auto val = it->second;
- std::wstring val_first = val.first;
- dependent_sendEvent(svc_textFeed::depend_getClassGuid(), Event_TEXTCHANGE, (intptr_t)key.c_str(), (void*)val_first.c_str(), wcslen(val_first.c_str()) + 1, viewer);
- }
- }
- if (add) onRegClient();
- else onDeregClient();
- }
- void *TextFeed::dependent_getInterface(const GUID *classguid)
- {
- HANDLEGETINTERFACE(svc_textFeed);
- return NULL;
- }
|