News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

RadASM 3.0 bugtest

Started by KetilO, May 31, 2010, 12:28:11 PM

Previous topic - Next topic

ragdog

QuoteHow to open toolbar creator:
----------------------------
Open or add a .tbr file to your project. This will open a toolbar creator window in RadASM.

I have added a blank .tbr file to my project if cklick this file in the project browser popup not any dialog

a other question to Addin programming

I need a function if a Tab in the Tab Toolbar selected
I have look in the radasm sdk and i cannot find any function

Have you an idea?

donkey

Quote from: ragdog on May 08, 2011, 04:50:55 PM
QuoteHow to open toolbar creator:
----------------------------
Open or add a .tbr file to your project. This will open a toolbar creator window in RadASM.

I have added a blank .tbr file to my project if cklick this file in the project browser popup not any dialog

Works fine here, version 3.0.0.7M

Quotea other question to Addin programming

I need a function if a Tab in the Tab Toolbar selected
I have look in the radasm sdk and i cannot find any function

Have you an idea?

AIM_RASELCHANGE.
"Ahhh, what an awful dream. Ones and zeroes everywhere...[shudder] and I thought I saw a two." -- Bender
"It was just a dream, Bender. There's no such thing as two". -- Fry
-- Futurama

Donkey's Stable

ragdog

#332
I use allready AIM_RASELCHANGE

.if uMsg==AIM_RASELCHANGE
      mov      ebx,lParam
      .if [ebx].RASELCHANGE.fchanged
            invoke MessageBox,0,0,0,MB_DEFBUTTON1
        .endif

This works only with open a file from projectbrowser
but if file allready open and if select a other tab button works not

I use now this


    mov eax,lpHandles
       mov ebx,[eax].ADDINHANDLES.hTab
       invoke SetWindowLong,ebx,GWL_WNDPROC,offset TabWndProc
       mov OldTabWndProc,eax
..
,
TabWndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
.if uMsg==WM_LBUTTONUP
.if hAutoRefresh==TRUE
            invoke SendMessage,hProperty,WM_COMMAND,5,0
        .endif
.endif
invoke CallWindowProc,OldTabWndProc,hWnd,uMsg,wParam,lParam
ret
TabWndProc endp


Can i use BN_CLICKED or gives a function in radasm sdk if Tab Activated?
like TabToolActivate from radasm source

I need a function if a tab button clicked

like TabToolActivate in radasm source

juozas

I'd like to repport the bug that causes RadAsm to crash alot on my pc. When you start program via Debug -> Run and when it running you got to that menu item again, it crash with this report:

Module name: RadASM (RadASM version 3.0.0.7m)
Windows XP Service Pack 3
Exception code: C0000005h
EXCEPTION_ACCESS_VIOLATION
Instruction pointer: 0045FA92h

Registers:
eax=00000000h ebx=00000000h ecx=7C90F661h
edx=00000004h esi=0041E073h edi=0013FEB8h
ebp=0013FA08h esp=0013F9F8h eip=0045FA92h

Segment registers:
CS=001Bh DS=0023h SS=0023h
ES=0023h FS=003Bh GS=0000h

Flags: PF ZF IF
Flags: PF ZF IF
F3h SS=0023h
ES=0023h FS=003Bh GS=0000h


Stack:
0013FEB8 0041E073 00000000 00CB03AC
0013FE50 00420AC0 00000001 00000000
00000000 0013FEB8 0041E073 00000000
00000000 00000000 00000000 763A3C0C


p.s. dbghelp.dll in radasm folderis version 6.12.2.633 from latest version of debugging tools for Windows
Сделано в СССР

donkey

Hi RagDog,

Well if you're using AIM_RASELCHANGE I would think you should be looking at the wParam not the lParam, it points to a TABMEM structure that gives information on the current tab:

TABMEM struct
hwnd DD ;Handle of the mdi child window.
hedt DD ;Handle of the edit window
pid DD ;Project id
filename DB MAX_PATH DUP ;Filename including full path.
ft FILETIME ;Filetime for last write.
nchange DD
fchanged DD
fupdate DD
fnonotify DD
nlastsize DD
nlastpropline DD
ends
"Ahhh, what an awful dream. Ones and zeroes everywhere...[shudder] and I thought I saw a two." -- Bender
"It was just a dream, Bender. There's no such thing as two". -- Fry
-- Futurama

Donkey's Stable

ragdog

Thanks i Try it :8)

I must subclass this tabtool window and then use your posted function correct?

mov eax,lpHandles       
mov ebx,[eax].ADDINHANDLES.hTab                       <<<<<<<<<<<<<<<<<<
invoke SetWindowLong,ebx,GWL_WNDPROC,offset TabWndProc
mov OldTabWndProc,eax

TabWndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
         ...
          ...
   invoke CallWindowProc,OldTabWndProc,hWnd,uMsg,wParam,lParam
   ret
TabWndProc endp

donkey

Hi Ragdog,

If all you need to know is if a tab button has been pressed you can use the AIM_MDIACTIVATE message, it is sent each time an MDI child is diplayed, which happens to be each time a tab button is pressed.

AIM_DEBUGGETWIN equ WM_USER+54

EXPORT InstallAddin,AddinProc

DATA SECTION

hInstance HANDLE 0
lpHandles PTR 0
lpProcs PTR 0
lpData PTR 0

hRadASM HANDLE 0
hOutput HANDLE 0

hook HOOK <>

CODE SECTION

DllEntryPoint FRAME hInst, reason, reserved1
    mov eax,[hInst]
    mov [hInstance], eax
    xor eax, eax
    inc eax
    ret
ENDF

InstallAddin FRAME hWin

invoke SendMessage, [hWin], AIM_GETHANDLES, 0, 0
mov [lpHandles], eax
invoke SendMessage, [hWin], AIM_GETPROCS, 0, 0
mov [lpProcs], eax
invoke SendMessage, [hWin], AIM_GETDATA, 0, 0
mov [lpData], eax

mov eax,[hWin]
mov [hRadASM],eax

invoke SendMessage,[hRadASM],AIM_DEBUGGETWIN,0,1
mov [hOutput],eax

mov D[hook.hook1],HOOK_MDIACTIVATE
xor eax,eax
mov [hook.hook2],eax
mov [hook.hook3],eax
mov [hook.hook4],eax
mov eax,offset hook
ret

ENDF

AddinProc FRAME hWin, uMsg, wParam, lParam

cmp D[uMsg], AIM_MDIACTIVATE
jnz >>.ExitMsgLoop
invoke SendMessage,[hOutput],EM_SETSEL ,-1,-1
invoke SendMessage,[hOutput],EM_REPLACESEL,0,offset <13,10,0>
invoke SendMessage,[hOutput],EM_REPLACESEL,0,"Tab Changed"
invoke SendMessage,[hOutput],EM_SCROLLCARET ,0,0

.ExitMsgLoop
xor eax, eax
ret
ENDF
"Ahhh, what an awful dream. Ones and zeroes everywhere...[shudder] and I thought I saw a two." -- Bender
"It was just a dream, Bender. There's no such thing as two". -- Fry
-- Futurama

Donkey's Stable

ragdog

#337
Thanks Edgar for your help

I have a good solution found


     mov eax,lpHandles
     mov eax,[eax].ADDINHANDLES.hToolTab
     invoke SetWindowLong,eax,GWL_WNDPROC,offset ToolTabWndProc
     mov OldToolTabWndProc,eax
..
.
.
ToolTabWndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
.if uMsg==WM_NOTIFY
        mov ebx,lParam
    .if [ebx].NMHDR.code==NM_CLICK
invoke TextOutput,addr szTabChanged
    .endif
.endif
invoke CallWindowProc,OldToolTabWndProc,hWnd,uMsg,wParam,lParam
ret
ToolTabWndProc endp

ragdog

Hey

I think this is a bug

Hide the Output window an compile any source with build or go
Now show the output window and destroy all windows in the proberties window

By click with build or go


I have look @ the source i cannot find it

And can any explan me this number in the projectfiles what this is?


Path=C:\Users\unknow\Desktop\DlgMain
Group=2,-1,0,1,DlgMain,-2,-1,0,Assembly,-3,-1,0,Include,-5,-1,0,Resource,-6,-1,0,Modules
F1=-2,0,1,22,22,600,400,0,DlgMain.Asm
F2=-3,0,1,22,22,600,400,0,DlgMain.Inc
F3=-5,2,4,22,22,600,400,0,DlgMain.Rc
F4=-6,0,1,0,0,877,438,0,gg.asm
Open=0,4
Api=
C4=0
B4=
M4=


I need information about it for my new Addin

Greets,

donkey

Hi Ragdog,

This much you can get from a bit of experimentation:

F2=Group,(?),Filetype,x,y,Width,Height,Line#,FileName.h

Filetypes: 1 = Code, 4 = Resource
"Ahhh, what an awful dream. Ones and zeroes everywhere...[shudder] and I thought I saw a two." -- Bender
"It was just a dream, Bender. There's no such thing as two". -- Fry
-- Futurama

Donkey's Stable

ragdog

Thanks

What for coordiantes if this
x,y,Width,Height

To show from selected file the mdichild?

and what if c4 d4 ....

A project.Ini Help would be good

donkey

Quote from: ragdog on May 11, 2011, 05:48:08 PM
Thanks

What for coordiantes if this
x,y,Width,Height

To show from selected file the mdichild?

and what if c4 d4 ....

They are the coordinates and size of the mdi child if you right click a tab and use the menu to select "Restore". For C4 and D4, try changing them and see what happens.
"Ahhh, what an awful dream. Ones and zeroes everywhere...[shudder] and I thought I saw a two." -- Bender
"It was just a dream, Bender. There's no such thing as two". -- Fry
-- Futurama

Donkey's Stable

ragdog

Hi

Radasm30.rc
IDM_EDIT_FIND "Filnd"  <<<<<<<<<

This Trigger (codecomplete) works not by me with Include and includelib

I use original masm32.ini


[CodeComplete]
Trig=invoke
Inc=include
Lib=includelib
Api=winasmApi.api,winasmConst.api,winasmStruct.api,winasmMsg.api,winmasmWord.api,winasmType.api

hfheatherfox07

Quote from: KetilO on June 08, 2010, 02:10:12 PM
This addin converts RadASM 2.x projects to RadASM 3.0 projects.

WARNING!
- Copy all files in the project to a new folder before attempting to convert.
- RC files will be converted to a single file. mnu, dlg and rap files will be deleted.

NOTE!
- No attempt is made to convert the make options.
- Previously non visible dialogs must be made non visible in the new project.
- You need RadASM 3.0.0.1 or higher for the addin to work.

HOW TO INSTALL
- Copy the ConvertProject.dll to the Addins folder.
- Copy the ConvertProject.txt to the Addins/Help folder.
- Restart RadASM if it is running.

KetilO

Hi I tried  to convert Version-Inc to work with RadASM 3.0.0.1  with no sucsses....I got the plugin to be recognized by the the add-in manager , but I can only add it after I start RadASM, if it is in there before , RadASM crashes at start up, Strange

I changed my .def
from:

LIBRARY Version-Inc
EXPORTS
InstallDll
DllProc
GetOptions

To:


LIBRARY Version-Inc
EXPORTS
InstallAddin
AddinProc
GetOptions

obviously the procs too any ideas ?




Gunner

Hmm, I can't seem to find the source to that one in any files I have...  Anyways, without seeing the source for that addin it is hard to say... Donkey?

RadASM 3 does not have the same messages that RadASM 2 used, could that be the problem?  There are different structures also, both those being said, just renaming the old procs to new addin proc names will not work, since the new addins use different startup code
~Rob (Gunner)
- IE Zone Editor
- Gunners File Type Editor
http://www.gunnerinc.com