;FEM_GETSEARCHTEXT
macro SearchFasmTxt {
   invoke FindWindow,'FASMW_IDE32',0   
invoke  GetWindowThreadProcessId,eax,tmpVmem_
;invoke  GetWindowThreadProcessId,[FasmFeditHwnd],tmpVmem_
      ;mov     ebx,eax
      invoke  OpenProcess,PROCESS_ALL_ACCESS,0,[tmpVmem_]
      mov    [tmpVmem_b],eax
      invoke  WriteProcessMemory,eax,0x601266,procesTxts,4,4

      }
macro mFindReplaceBtns { local .ll,.l0,.l3
      xor     ecx,ecx
.ll:  mov     eax,ecx
      add     eax,IDC_UserComboFind
      cmp     [wparam],eax
      jnz     .l0
      SearchFasmTxt

      invoke SendMessage,[FasmFeditHwnd],dword FEM_FINDFIRST,dword 0,dword 0x601266
      ret
.l0:  inc     ecx
      cmp     ecx,2
      jnz     .ll
      }

IDC_UserComboFind = 22000
btnXStart_ = 340
btnYStart_ = 26+22*5
invoke CreateWindowEx,0,'button','Find',dword WS_VISIBLE+WS_CHILD,dword btnXStart_,dword btnYStart_,dword 50,dword 22,[DLL_hwnd],dword IDC_UserComboFind,0,0
invoke CreateWindowEx,0,'button','Rplace',dword WS_VISIBLE+WS_CHILD,dword btnXStart_,dword btnYStart_+22*2,dword 50,dword 22,[DLL_hwnd],dword IDC_UserComboFind+1,0,0

invoke CreateWindowEx,0,'combobox',0,dword CBS_AUTOHSCROLL+WS_VISIBLE+WS_CHILD,\
          dword btnXStart_,dword btnYStart_+22,dword 258,dword 19,[DLL_hwnd],dword IDC_UserComboFind+20,0,NULL
mov  [ComboFindTxt],eax
invoke CreateWindowEx,0,'combobox',0,dword CBS_AUTOHSCROLL+WS_VISIBLE+WS_CHILD,\
          dword btnXStart_,dword btnYStart_+22*3,dword 258,dword 19,[DLL_hwnd],dword IDC_UserComboFind+21,0,NULL
mov  [ComboReplaceTxt],eax
rept 0 {
;MEM_COMMIT  MEM_RESERVE. MEM_MAPPED
;VirtualAlloc dla odnogo process. dla fasmIDE ne podhodit
invoke VirtualAlloc,0,1000h,dword MEM_COMMIT,dword PAGE_READWRITE
mov    [tmpVmem_],eax

;invoke VirtualProtect,[tmpVmem_],1000h ,dword PAGE_EXECUTE_READWRITE,dword 0
mov word [eax],"%%"
invoke VirtualLock,eax,1024*4
Msg [tmpVmem_]
}
rept 0 {
 invoke CreateFileMapping,INVALID_HANDLE_VALUE,0,PAGE_READWRITE,0,1024,"Global\\MyFileMappingObject"
 mov    [tmpVmem_],eax
 invoke MapViewOfFile,eax,FILE_MAP_ALL_ACCESS, 0, 0, 1024
mov    [tmpVmem_b],eax
}
jmp @f
ComboFindTxt      dd 0
ComboReplaceTxt   dd 0
tmpVmem_          dd 0
tmpVmem_b         dd 0
caret.Pose        dd 0,0,0,0
procesTxts        db "room",0
@@: