Jump to content

missing constants for _WinAPI_DrawEdge


oMBRa
 Share

Recommended Posts

_WinAPI_DrawEdge requires BorderConstants.au3 but I dont have it, I have autoit version 3.2.12.1 and Beta

All the constants are found in this thread

http://www.autoitscript.com/forum/index.ph...ost&p=77558

Reproduced here.

I suppose this could be called the missing BorderConstants.au3 file.

Global Const $BDR_RAISEDOUTER = 0x1
Global Const $BDR_SUNKENOUTER  = 0x2
Global Const $BDR_RAISEDINNER = 0x4
Global Const $BDR_SUNKENINNER = 0x8
Global Const $EDGE_BUMP = (BitOR($BDR_RAISEDOUTER,$BDR_SUNKENINNER))
Global Const $EDGE_ETCHED = (BitOR($BDR_SUNKENOUTER,$BDR_RAISEDINNER))
Global Const $EDGE_RAISED = (BitOR($BDR_RAISEDOUTER, $BDR_RAISEDINNER))
Global Const $EDGE_SUNKEN = (BitOR($BDR_SUNKENOUTER,$BDR_SUNKENINNER))

Global Const $BF_ADJUST = 0X2000
Global Const $BF_BOTTOM = 0X8
Global Const $BF_DIAGONAL = 0X10
Global Const $BF_FLAT = 0X4000
Global Const $BF_LEFT = 0X1
Global Const $BF_MIDDLE = 0X800
Global Const $BF_MONO = 0X8000
Global Const $BF_RIGHT = 0X4
Global Const $BF_SOFT = 0X1000
Global Const $BF_TOP = 0X2
Global Const $BF_BOTTOMLEFT = (BitOR($BF_BOTTOM,$BF_LEFT))
Global Const $BF_BOTTOMRIGHT = (BitOR($BF_BOTTOM,$BF_RIGHT))
Global Const $BF_DIAGONAL_ENDBOTTOMLEFT = (BitOR($BF_DIAGONAL,$BF_BOTTOM,$BF_LEFT))
Global Const $BF_DIAGONAL_ENDBOTTOMRIGHT = (BitOR($BF_DIAGONAL,$BF_BOTTOM,$BF_RIGHT))
Global Const $BF_DIAGONAL_ENDTOPLEFT = (BitOR($BF_DIAGONAL,$BF_TOP,$BF_LEFT))
Global Const $BF_DIAGONAL_ENDTOPRIGHT = (BitOR($BF_DIAGONAL,$BF_TOP,$BF_RIGHT))
Global Const $BF_RECT = (BitOR($BF_LEFT,$BF_TOP,$BF_RIGHT,$BF_BOTTOM))
Global Const $BF_TOPLEFT = (BitOR($BF_TOP,$BF_LEFT))
Global Const $BF_TOPRIGHT = (BitOR($BF_TOP,$BF_RIGHT))

Edit: 31/10/2008 I copied zorphnog Post No.10 In to avoid future problems.

I had the same problem with the order of declarations. Should have reposted this a lot earlier.

Edited by Malkey
Link to comment
Share on other sites

I did this

#Include <WinAPI.au3>
$tRECT = DllStructCreate($tagRECT)
DllStructSetData($tRECT, 'Left', 5)
DllStructSetData($tRECT, 'Top', 5)
DllStructSetData($tRECT, 'Right', 250)
DllStructSetData($tRECT, 'Bottom', 50)



$hDC = _WinAPI_GetDC(0)
_WinAPI_DrawEdge($hDc, $tRECT, 0x4, 0x10)

but I get this error: 'An error has occurred with autoit3.exe. The application will be closed.' here is a screenshoot

Edited by oMBra
Link to comment
Share on other sites

here is my updated code:

#Include <WinAPI.au3>
$tRECT = DllStructCreate($tagRECT)
DllStructSetData($tRECT, 'Left', 5)
DllStructSetData($tRECT, 'Top', 5)
DllStructSetData($tRECT, 'Right', 250)
DllStructSetData($tRECT, 'Bottom', 50)



$hDC = _WinAPI_GetDC(_WinAPI_GetDesktopWindow())
_WinAPI_DrawEdge($hDc, $tRECT, 0x4, 0x10)

but I still get that error I said above

Link to comment
Share on other sites

You're still not checking if $hDC is a valid handle! If you call _WinAPI_DrawEdge without a valid handle you're going to get a runtime error, but after further analysis its probably the $tRECT that is crashing it. You need to pass a pointer to $tRECT.

#Include <WinAPI.au3>
$tRECT = DllStructCreate($tagRECT)
$pRECT = DllStructGetPtr($tRECT)
DllStructSetData($tRECT, 'Left', 5)
DllStructSetData($tRECT, 'Top', 5)
DllStructSetData($tRECT, 'Right', 250)
DllStructSetData($tRECT, 'Bottom', 50)

$hDC = _WinAPI_GetDC(_WinAPI_GetDesktopWindow())
If $hDC <> 0 Then _WinAPI_DrawEdge($hDc, $pRECT, 0x4, 0x10)
Link to comment
Share on other sites

yes it needs a pointer, that's my error, but when I try to load those constants I get this:

C:\Programmi\AutoIt3\Include\BorderConstants.au3(24,56) : WARNING: $BF_LEFT: possibly used before declaration.
Global Const $BF_BOTTOMLEFT = BitOR($BF_BOTTOM,$BF_LEFT)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Programmi\AutoIt3\Include\BorderConstants.au3(25,58) : WARNING: $BF_RIGHT: possibly used before declaration.
Global Const $BF_BOTTOMRIGHT = BitOR($BF_BOTTOM,$BF_RIGHT)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Programmi\AutoIt3\Include\BorderConstants.au3(29,66) : WARNING: $BF_TOP: possibly used before declaration.
Global Const $BF_DIAGONAL_ENDTOPLEFT = BitOR($BF_DIAGONAL,$BF_TOP,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Documents and Settings\oMBra\Desktop\Nuovo AutoIt v3 Script (8).au3 - 0 error(s), 3 warning(s)
->15:47:11 AU3Check ended.rc:1
>Running:(3.2.12.1):C:\Programmi\AutoIt3\autoit3.exe "C:\Documents and Settings\oMBra\Desktop\Nuovo AutoIt v3 Script (8).au3"   
C:\Programmi\AutoIt3\Include\BorderConstants.au3 (24) : ==> Variable used without being declared.:
Global Const $BF_BOTTOMLEFT = BitOR($BF_BOTTOM,$BF_LEFT)
Global Const $BF_BOTTOMLEFT = BitOR($BF_BOTTOM,^ ERROR
Edited by oMBra
Link to comment
Share on other sites

Oh, if you copied that code from Malkey. It should be:

Global Const $BDR_RAISEDOUTER = 0x1
Global Const $BDR_SUNKENOUTER  = 0x2
Global Const $BDR_RAISEDINNER = 0x4
Global Const $BDR_SUNKENINNER = 0x8
Global Const $EDGE_BUMP = (BitOR($BDR_RAISEDOUTER,$BDR_SUNKENINNER))
Global Const $EDGE_ETCHED = (BitOR($BDR_SUNKENOUTER,$BDR_RAISEDINNER))
Global Const $EDGE_RAISED = (BitOR($BDR_RAISEDOUTER, $BDR_RAISEDINNER))
Global Const $EDGE_SUNKEN = (BitOR($BDR_SUNKENOUTER,$BDR_SUNKENINNER))

Global Const $BF_ADJUST = 0X2000
Global Const $BF_BOTTOM = 0X8
Global Const $BF_DIAGONAL = 0X10
Global Const $BF_FLAT = 0X4000
Global Const $BF_LEFT = 0X1
Global Const $BF_MIDDLE = 0X800
Global Const $BF_MONO = 0X8000
Global Const $BF_RIGHT = 0X4
Global Const $BF_SOFT = 0X1000
Global Const $BF_TOP = 0X2
Global Const $BF_BOTTOMLEFT = (BitOR($BF_BOTTOM,$BF_LEFT))
Global Const $BF_BOTTOMRIGHT = (BitOR($BF_BOTTOM,$BF_RIGHT))
Global Const $BF_DIAGONAL_ENDBOTTOMLEFT = (BitOR($BF_DIAGONAL,$BF_BOTTOM,$BF_LEFT))
Global Const $BF_DIAGONAL_ENDBOTTOMRIGHT = (BitOR($BF_DIAGONAL,$BF_BOTTOM,$BF_RIGHT))
Global Const $BF_DIAGONAL_ENDTOPLEFT = (BitOR($BF_DIAGONAL,$BF_TOP,$BF_LEFT))
Global Const $BF_DIAGONAL_ENDTOPRIGHT = (BitOR($BF_DIAGONAL,$BF_TOP,$BF_RIGHT))
Global Const $BF_RECT = (BitOR($BF_LEFT,$BF_TOP,$BF_RIGHT,$BF_BOTTOM))
Global Const $BF_TOPLEFT = (BitOR($BF_TOP,$BF_LEFT))
Global Const $BF_TOPRIGHT = (BitOR($BF_TOP,$BF_RIGHT))

The order of declaration makes a difference.

Link to comment
Share on other sites

Either the constants should be in the UDF that uses them, or the other UDF (BorderConstants.au3) should be included with it.

Bug Trac #650 submitted.

:mellow:

Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law
Link to comment
Share on other sites

Either the constants should be in the UDF that uses them, or the other UDF (BorderConstants.au3) should be included with it.

Bug Trac #650 submitted.

:mellow:

_WinAPI_DrawEdge

Remarks

Needs BorderConstants.au3 for pre-defined constants

Pretty sure the include is in the latest beta

SciTE for AutoItDirections for Submitting Standard UDFs

 

Don't argue with an idiot; people watching may not be able to tell the difference.

 

Link to comment
Share on other sites

I have beta and BorderConstants.au3 is missing

It's not there in 3.2.13.9, but I think Gary meant the next Beta, 3.2.13.10, which us common hoi polloi don't have access to yet.

At any rate, Bug Trac #650 is already flagged fixed for the 3.2.13.10 milestone.

:mellow:

Edited by PsaltyDS
Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...