From 367d9f6f71420e4c7ed5f273e04d280655bb3d7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20P=C3=B6sel?= Date: Mon, 24 Dec 2012 21:30:41 +0000 Subject: SMS plugin adopted (32bit version only) git-svn-id: http://svn.miranda-ng.org/main/trunk@2831 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- .../SMS/src/AdditionalFunctions/MemoryFindByte.h | 71 ++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 plugins/SMS/src/AdditionalFunctions/MemoryFindByte.h (limited to 'plugins/SMS/src/AdditionalFunctions/MemoryFindByte.h') diff --git a/plugins/SMS/src/AdditionalFunctions/MemoryFindByte.h b/plugins/SMS/src/AdditionalFunctions/MemoryFindByte.h new file mode 100644 index 0000000000..002f76e44c --- /dev/null +++ b/plugins/SMS/src/AdditionalFunctions/MemoryFindByte.h @@ -0,0 +1,71 @@ +#if !defined(AFX_MEMORYFINDBYTE__H__INCLUDED_) +#define AFX_MEMORYFINDBYTE__H__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + + + +__inline LPVOID MemoryFindByte(SIZE_T dwFrom,LPCVOID lpcSource,SIZE_T dwSourceSize,unsigned char chWhatFind) +{ + LPVOID lpRet=NULL; + + if (lpcSource && dwSourceSize) + { + if (dwFromdwFrom + jae short end_func + + std //; count 'up' on string this time + sub ecx,eax //; уменьшаем длинну на dwFrom(нач смещен) + add edi,ecx //; сдвигаем начало на dwSourceSize(на конец) + mov al,chWhatFind //; al=search byte + repne scasb //; find that byte + inc edi //; di points to byte which stopped scan + cmp [edi],al //; see if we have a hit + jne short end_func //; yes, point to byte + mov lpRet,edi //; ax=pointer to byte + end_func: + + cld + pop esi // восстанавливаем содержимое регистра + pop edi // восстанавливаем содержимое регистра + pop ebx // восстанавливаем содержимое регистра + } +return(lpRet); +} + + + +#endif // !defined(AFX_MEMORYFINDBYTE__H__INCLUDED_) -- cgit v1.2.3